我有以下类(class):
class Person
{
public string Name { get; set; }
public List<Person> Children { get; set; }
}
我创建了这个类的一个实例,fox ex。
Person pers = new Person();
我可以静态编写 foreach 循环并将子项存储在某个列表中:
foreach (var item in pers.Children)
{
List<Person> r = item.Children;
foreach (var item2 in item.Children)
{
List<Person> k = item2.Children;
foreach (var item3 in item2.Children)
{
etc..
}
}
}
问题是,如果“pers”有一个子级,并且他的一个子级 (pers.Children) 也有一个子级,如何编写 foreach 循环代码 children 。这就像家谱树。
我的意思是,如何让它更加动态?因为我不知道家庭的结构可以如何。
编辑: 我只是想展示一个人的所有继承人。例如,只是他的继任者的名字
最佳答案
使用递归:
public static void ShowAll(Person pers)
{
Console.WriteLine(pers.Name);
foreach (var item in pers.Children)
{
ShowAll(item);
}
}
关于c# - 如何在 List<T> 中的 foreach 中编写变量循环级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29716936/