c# - 如何在 List<T> 中的 foreach 中编写变量循环级别

标签 c# foreach

我有以下类(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/

相关文章:

java - 对于每个循环异常

c# - 将 DataRow 值转换为强类型值

c# - app.config 的困境 - 为什么我不能嵌入应用程序配置?

c# - 计划的 WebJob 未按计划调用函数

php - while($row = mysql_fetch_assoc($result)) - 如何 foreach $row?

c# - 如何将 foreach 与二维对象数组一起使用?

c# - 使用 NHibernate 映射时覆盖列大小写

c# - 从后台线程调用时绑定(bind)失败

PHP 嵌套 foreach() 给出警告 : Invalid argument supplied for foreach()

php - 如何在smarty中打印数组?