Mam kwerendę linq, w której tworzę kilka klas, które mają na sobie właściwość Parent. Szukam sposobu na ustawienie właściwości nadrzędnej na klasę, którą właśnie utworzyłem. Moje wytłumaczenie jest do bani; oto kod tego, co próbuję zrobić.LINQ wybierz nową klasę o nazwie
var query = from states in xml.Elements()
select new State
{
Children = from cities in states.Elements()
select new City()
{
ParentState = **???**;
}
};
Jak ustawić właściwość ParentState? Gdybym mógł zrobić coś podobnego do tego, co mogłoby być fajne, ale nie mogę. Wiem, że mogę to zrobić za pomocą pętli foreach, ale chciałbym się dowiedzieć, jak to zrobić, jeśli to możliwe, z LINQ. Pomoc :(
EDIT: Próbowałem Niech X = new Stan {} ale to nie pomogło Miałem nadzieję, że odnoszę się do X w konstruktorze jak to, ale nie wyszło.
let x = new State
{
Children = from cities in states.Elements()
select new City{ ParentState = x }
}
select x;
W języku F # istnieje coś podobnego do tego, w którym można po prostu powiedzieć niech rec x = ... , a następnie można odwołać się do zmiennej wewnątrz instrukcji przypisania, ale to jest C# nie F #, więc cokolwiek.
Chce, aby potomne obiekty miasta odwoływały się do obiektu stanu macierzystego. Twoje podejście nie spełnia tego celu, ponieważ zewnętrzne państwo i państwo nadrzędne nie są tym samym obiektem. –
Tak, widzę to teraz. Interesujący problem w rzeczy samej :) – sTodorov