如何在C#中简化TreeView列表的输出?

问题描述 投票:1回答:2

我有一个如下的现有Treeview结构列表;

var mainList = new List<MyClass>();
mainList.AddRange(new List<MyClass>
{
    new MyClass
    {
        Id = 1,
        Text = "Node1",
        UnwantedProp1 = "somevalue",
        UnwantedProp2 = "somevalue",
        UnwantedProp3 = "somevalue",
        Children = new List<MyClass>
        {
            new MyClass
            {
                Id = 11,
                Text = "Node11",
                UnwantedProp1 = "somevalue",
                UnwantedProp2 = "somevalue",
                UnwantedProp3 = "somevalue",
                Children = new List<MyClass>
                {
                    new MyClass
                    {
                        Id = 111,
                        Text = "Node111",
                        UnwantedProp1 = "somevalue",
                        UnwantedProp2 = "somevalue",
                        UnwantedProp3 = "somevalue"
                    }
                }
            },
            new MyClass
            {
                Id = 12,
                Text = "Node12",
                UnwantedProp1 = "somevalue",
                UnwantedProp2 = "somevalue",
                UnwantedProp3 = "somevalue"
            }
        }
    },
    new MyClass
    {
        Id = 2,
        Text = "Node2",
        UnwantedProp1 = "somevalue",
        UnwantedProp2 = "somevalue",
        UnwantedProp3 = "somevalue"
    }
});

I ONLY希望为父母和孩子都使用IdText(可能在此过程中将Text字段更改为Title字段)并创建一个新列表。

var modifiedResult = mainList.Select(c => new
    {
        c.Id,
        Title = c.Text,
        Children = c.Children.Select(p => new
        {
            p.Id,
            Title = p.Text,
            Children = p.Children.Select(j => .... ... )//<-- How do we Recursive this?
        }).ToList(),
})
.ToList();

上面所有的简化类Treeview的通用功能都是我的实际目标。任何帮助将不胜感激!

c# recursion anonymous-types treelist
2个回答
2
投票

这应该可以正常工作:


1
投票

您可以使用类似的递归方法:

© www.soinside.com 2019 - 2024. All rights reserved.