我想转换以下代码来处理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都有一个子级对象集合,一组实体和一个父级对象。 我需要这个将对象结构转换为过滤器。 任何人都知道如何转换它?
答案 0 :(得分:8)
最简单的方法是递归:
internal static void CreateLevel(LevelObject levelObject) {
foreach (var l in levelObject.LevelObjects) {
CreateLevel(l);
AddEntities(l);
}
}
答案 1 :(得分:0)
使用您的代码......
internal static void CreateLevel(LevelObject levelObject)
{
foreach(LevelObject l1 in levelObject.LevelObjects)
{
CreateLevel(l1.LevelObjects);
AddEntities(l1);
}
}
将实现相同的目标