使用多个层迭代嵌套列表

时间:2018-01-30 11:16:46

标签: c# list loops nested nodes

考虑您拥有集合的场景,并且该集合内部是特定对象。这些对象也包含一个集合,在这些集合中更多的是相同的对象。它是一个有很多层的嵌套集合。

List<WorkItemClassificationNode> items;
List<WorkItemClassificationNode> subItems = items.Children;
List<WorkItemClassificationNode> subSubItems = subItems.Children;
// etc

我只想要一个迭代遍历每个层的方法,以便对每个项应用相同的逻辑,但是我不能想到一种直接的方法,而不需要编写大量的嵌套循环。

1 个答案:

答案 0 :(得分:4)

您应该考虑编写递归方法。 (互联网上有很多关于它的信息)

本质上,递归方法是一种自称​​的方法

void DoThing(WorkItemClassificationNode node)
{
    if (node == null)
        return;

    //Do something with node

    if (node.Children == null)
        return;

    foreach(var child in node.Children)
        DoThing(child);
}

请注意ever growing stack