Ich habe eine Linq-Abfrage, wo ich mehrere Klassen erstellen, die eine Parent-Eigenschaft für sie haben. Ich suche nach einer Möglichkeit, die übergeordnete Eigenschaft als die Klasse zu definieren, die ich gerade erstellt habe. Meine Erklärung ist schlecht. Hier ist Code von dem, was ich versuche zu tun.LINQ wählen Sie neue Klasse mit einem Namen
var query = from states in xml.Elements()
select new State
{
Children = from cities in states.Elements()
select new City()
{
ParentState = **???**;
}
};
Wie setze ich die ParentState-Eigenschaft? Wenn ich etwas tun könnte wie
select new State as newState
{
...
}
das wäre cool, aber ich kann nicht. Ich weiß, dass ich dies mit einer foreach-Schleife tun kann, aber ich würde gerne lernen, wie dies möglich ist, wenn dies mit LINQ möglich ist. Hilfe :(
EDIT: Ich habe versucht, lassen x = new Staat {}, aber so viel hat nicht geholfen Ich hatte gehofft, ich x im Konstruktor wie diese verweisen könnte, aber es hat nicht funktioniert.
let x = new State
{
Children = from cities in states.Elements()
select new City{ ParentState = x }
}
select x;
In F #, es ist etwas ähnlich wie diese, wo man einfach lassen sagen kann rec x = ... und dann können Sie die Variable in der Zuweisungsanweisung beziehen. Aber das ist C# nicht Fis so was auch immer.
Er möchte, dass die untergeordneten Stadtobjekte auf das übergeordnete Statusobjekt verweisen. Ihr Ansatz erreicht dieses Ziel nicht, da der äußere Staat und der Elternstaat nicht dasselbe Objekt sind. –
Ja, das sehe ich jetzt. Interessantes Problem in der Tat :) – sTodorov