6
foreach (TargetObject innerObject1 in complexObject.InnerObjects) {
foreach (TargetObject innerObject2 in innerObject1.InnerObjects) {
foreach (TargetObject innerObject3 in innerObject2.InnerObjects) {
yield return innerObject3;
}
yield return innerObject2;
}
yield return innerObject1;
}
Wie kann ich dies kursiv machen? Ich muss alle Instanzen von TargetObject
, die in diesen verschachtelten Listen zusammengefasst sind, in einer Liste zusammenfassen. Hier ist ein Versuch, der nicht funktioniert hat.C# rekursiv über verschachtelte Eigenschaftslisten iterieren
public static IEnumerable<TargetObject> GetRecursively(params TargetObject[] startingObjects)
{
foreach (TargetObject startingObject in startingObjects)
{
foreach (TargetObject innerObject in GetRecursively(startingObject.InnerObjects.ToArray()))
{
yield return innerObject;
}
yield return startingObject;
}
}
es ist schön: ') – parliament
erwähnenswert Sie können ein einzelnes Objekt an Parameter Parameter übergeben, so dass die Array-Fall in beiden Fällen ohne Überlastung funktioniert. – parliament
+1 Erhabenes Stück Code! – Rob