我有一个如下的现有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希望为父母和孩子都使用Id
和Text
(可能在此过程中将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的通用功能都是我的实际目标。任何帮助将不胜感激!
这应该可以正常工作:
您可以使用类似的递归方法: