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;
}
これをどのようにして行うことができますか?私はTargetObject
のすべてのインスタンスを、これらのネストされたリストにトラップして1つのリストに集約する必要があります。ここではうまくいかない試みがあります。C#反復的にネストされたプロパティリストを繰り返し処理する
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;
}
}
それは美しいです: ') – parliament
あなたはparamsパラメータに1つのオブジェクトを渡すことができますので、配列の大文字と小文字の両方の場合に働きます。 – parliament
+1崇高なコード! – Rob