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 回答