gpt4 book ai didi

c# - 如何压扁树

转载 作者:行者123 更新时间:2023-11-30 19:35:31 24 4
gpt4 key购买 nike

我有一个包含

的嵌套列表
public class Person
{
public Person(string name)
{
this.Name = name;
}

public string Name { get; set; }

public List<Person> Childs { get; set; }
}

列表可以像这样使用:

var Persons = new List<Person>();
Persons.Add(new Person("Eric"));
Persons[0].Childs = new List<Person>();
Persons[0].Childs.Add(new Person("Tom"));
Persons[0].Childs.Add(new Person("John"));
Persons[0].Childs[0].Childs = new List<Person>();
Persons[0].Childs[0].Childs.Add(new Person("Bill"));
Persons.Add(new Person("John");

我怎样才能展平这棵树(将所有节点和子节点,以及子节点放在一个列表中),例如我想用一个级别参数在同一级别显示所有 child 和 parent 。这意味着:

之前:

-Eric
-Tom
-John
-Bill

我想要的:

-Eric, Level1
-Tom, Level2
-John, Level2
-Bill, Level3

最佳答案

递归方法的完美用例

public static void DisplayPerson(List<Person> persons, int level = 0)
{
if (persons != null)
{
level++;
foreach (Person item in persons)
{
Console.WriteLine("-" + item.Name + ", Level" + level);
DisplayPerson(item.Childs, level);
}
}
}

https://dotnetfiddle.net/2J9F5K

关于c# - 如何压扁树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55019486/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com