0

次のコードを変換して、3 つ以上の foreach レベルを処理したいと考えています。

internal static void CreateLevel(LevelObject levelObject)
{
   foreach(LevelObject l1 in levelObject.LevelObjects)
   {
      foreach(LevelObject l2 in l1.LevelObjects)
      {
         foreach(LevelObject l3 in l2.LevelObjects)
         {
            AddEntities(l3);
         }
         AddEntities(l2);
      }
      AddEntities(l1);
   }
}

すべての LevelObject には、子レベル オブジェクトのコレクション、エンティティのコレクション、および親レベル オブジェクトがあります。オブジェクト構造をフィルターに変換するには、これが必要です。これを変換する方法を知っている人はいますか?

4

2 に答える 2

8

最も簡単な方法は、再帰することです。

internal static void CreateLevel(LevelObject levelObject) {
    foreach (var l in levelObject.LevelObjects) {
        CreateLevel(l);
        AddEntities(l);
    }
}
于 2012-10-18T13:40:32.283 に答える
0

コードを使用して...

internal static void CreateLevel(LevelObject levelObject)
{
   foreach(LevelObject l1 in levelObject.LevelObjects)
   {
      CreateLevel(l1.LevelObjects);
      AddEntities(l1);
   }
}

同じ目標を達成します

于 2012-10-18T13:41:58.473 に答える