在.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方法用于构建树,该方法接受一个节点列表作为输入,并返回根节点列表。构建树的过程是通过递归实现的,首先找到根节点,然后递归构建每个根节点的子节点

net core 自定义构树的方法

原文地址: https://www.cveoy.top/t/topic/hQL4 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录