net core 自定义构树的方法
在.NET Core中,可以使用自定义方法构建树结构。以下是一个示例:
public class TreeNode
{
public int Id { get; set; }
public string Name { get; set; }
public List<TreeNode> Children { get; set; }
}
public class TreeBuilder
{
public List<TreeNode> BuildTree(List<TreeNode> nodes)
{
// 构建根节点列表
var rootNodes = nodes.Where(n => n.ParentId == null).ToList();
// 递归构建树
foreach (var rootNode in rootNodes)
{
BuildChildren(rootNode, nodes);
}
return rootNodes;
}
private void BuildChildren(TreeNode node, List<TreeNode> nodes)
{
// 获取当前节点的子节点
var children = nodes.Where(n => n.ParentId == node.Id).ToList();
// 递归构建子节点的子节点
foreach (var child in children)
{
BuildChildren(child, nodes);
}
// 将子节点列表赋值给当前节点
node.Children = children;
}
}
使用示例:
var nodes = new List<TreeNode>
{
new TreeNode { Id = 1, Name = "Node 1", ParentId = null },
new TreeNode { Id = 2, Name = "Node 2", ParentId = null },
new TreeNode { Id = 3, Name = "Node 3", ParentId = 1 },
new TreeNode { Id = 4, Name = "Node 4", ParentId = 1 },
new TreeNode { Id = 5, Name = "Node 5", ParentId = 2 },
new TreeNode { Id = 6, Name = "Node 6", ParentId = 3 }
};
var treeBuilder = new TreeBuilder();
var tree = treeBuilder.BuildTree(nodes);
上述示例中,TreeNode类表示树节点,其中包含一个Children属性用于存储子节点列表。TreeBuilder类包含一个BuildTree方法用于构建树,该方法接受一个节点列表作为输入,并返回根节点列表。构建树的过程是通过递归实现的,首先找到根节点,然后递归构建每个根节点的子节点
原文地址: https://www.cveoy.top/t/topic/hQL4 著作权归作者所有。请勿转载和采集!