【发布时间】:2020-12-08 00:38:12
【问题描述】:
我的课是下面的项目
public class Item
{
public int id { get; set; }
public readonly List<Item> Children = new List<Item>();
}
我有这个类的列表。
List<WorkItem> treeList = new List<WorkItem>();
我将子项递归地添加到项中,这就是它的意思,项可以有“n”个子项,“n”个子项也可以有“n”个子项。
- 项目
-
- 儿童
-
-
- 儿童
-
-
-
-
- .......
-
-
-
-
-
- ........
-
-
-
- 儿童
- 项目
尽管知道儿童的深度,我如何在所有儿童的项目中进行 foreach。
谢谢
【问题讨论】:
-
你有没有...尝试过什么?顺便说一句,您已经提到了解决问题的关键字-“递归”。 here 是另一个帮助您解决问题的指针。
-
“我该怎么做 foreach” - 你不会。遍历未知深度的树是递归的工作,而不是迭代。
-
公平地说,你可以用递归做的所有事情,你都可以迭代地做。有些事情比较简单,有些事情比较简单。在这种情况下,递归会更合适,是的。
-
既然你想使用
foreach,你需要有遍历树的迭代器——我们有很多问题要问——bing.com/…,我选择了几个副本来展示如何构造要使用的枚举器foreach.