【发布时间】:2022-01-27 09:28:55
【问题描述】:
有所有视图位置(比如说 100 个,这些是 TreeView 的位置): ID、名称、父 ID 1 根空 2 半根 1 3 半半根 2 4 ...... ....
还有一些数据,其中我们仅从另一个请求中收到与我们的值相对应的那些位置: ID、名称、父 ID 22 位置 1 12 36 位置38 21 99 位置38 3
需要获取我们从请求中获得的数据的所有父层次结构。 有课:
public class TreeViewNode {
public Guid Id {get; set;}
public string Name {get; set;}
public Guid ParentId {get; set;}
}
测试数据:
private IEnumerable<TreeViewNode> SeedData()
{
return new List<TreeViewNode>
{
new()
{
Id = 1,
Name = "Root",
ParentId = null
},
new()
{
Id = 2,
Name = "Semi-root",
ParentId = 1
},
new()
{
Id = 3,
Name = "Semi te",
ParentId = 2
},
new()
{
Id = 4,
Name = "Semi oi",
ParentId = 2
},
new()
{
Id = 5,
Name = "Child",
ParentId = 3
},
new()
{
Id = 6,
Name = "Child 1",
ParentId = 4
},
new()
{
Id = 7,
Name = "Child 2",
ParentId = 1
},
new()
{
Id = 8,
Name = "Child 3",
ParentId = 1
},
new()
{
Id = 9,
Name = "Child 4",
ParentId = 1
},
new()
{
Id = 10,
Name = "Child 6",
ParentId = 2
}
};
}
从请求中获得的示例数据:
var dataFromRequest = new List<TreeViewNode>
{
new()
{
Id = 8,
Name = "Child 3",
ParentId = 1
},
new()
{
Id = 10,
Name = "Child 6",
ParentId = 2
},
new()
{
Id = 33,
Name = "Child",
ParentId = 3
},
new()
{
Id = 4,
Name = "Semi oi",
ParentId = 2
}
};
因此需要得到这样的父母名单:
Id Name ParentId
1 Root Null
2 Semi-root 1
3 Semi te 2
这里可以有 5 个或更多级别的父母
【问题讨论】:
标签: c# .net recursion treeview