遍历n级父子列表C#

时间:2016-09-29 20:01:46

标签: list parent-child traversal

我有一个父子列表。它可以是n级。

我需要此层次结构中的每个项目。

我正在使用' foreach'循环和递归函数,但它不起作用。

我已经在' stackoverflow'中找到了其他解决方案。但他们都没有为我工作。

public class Item
  {
    public int  Id { get; set; }
    public string Name { get; set; }
    public int ParentId { get; set; }

    private List<Item> children = new List<Item>();

    public List<Item> Children
    {
        get { return children; }
        set { children = value; }
    }

}

   List<Item> test = new List<Item>();
            test.Add(new Item { Id = 1, Name = "Root1", ParentId = -1 });
            test[0].Children.Add(new Item { Id = 4, Name = "child-1-Root1", ParentId = 1 });
            test[0].Children[0].Children.Add(new Item { Id = 10, Name = "grandchild-1-Root1", ParentId = 4 });
            test[0].Children.Add(new Item { Id = 5, Name = "child-2-Root1", ParentId = 1 });

            test.Add(new Item { Id = 2, Name = "Root2", ParentId = -1 });
            test[1].Children.Add(new Item { Id = 6, Name = "child-1-Root2", ParentId = 2 });
            test[1].Children.Add(new Item { Id = 7, Name = "child-2-Root2", ParentId = 2 });

            test.Add(new Item { Id = 3, Name = "Root3", ParentId = -1 });
            test[2].Children.Add(new Item { Id = 8, Name = "child-1-Root3", ParentId = 3 });
            test[2].Children.Add(new Item { Id = 9, Name = "child-2-Root3", ParentId = 3 });

1 个答案:

答案 0 :(得分:1)

解决方案是:

 0 => string '<div id="results_information" class="control_results"><span style="background:black; color:white">hellow world</span><strong>2</strong></div>',

 1 => string '<div id="results_information" class="control_results"><strong>2</strong><img src="hello.png"/></div>'