C# 递归获取树形结构数据类型

Model:可嵌套子类

    public class Equipment
    {
        public string Name { get; set; }             
        public Guid Id { get; set; }             
        public Guid ParentId { get; set; }             
        public List<Equipment> Children { get; set; }             
    }

 

        //递归获取子级
        static List<Equipment> GetChildren(Equipment equipment,List<Equipment> list)
        {
            if (!list.Any(a => a.ParentId == equipment.Id))
                return null;
            else
            {
                equipment.Children = list.Where(a=>a.ParentId == equipment.Id).ToList();
                foreach (var item in equipment.Children)
                {
                    item.Children = GetChildren(item, list);
                }
                return equipment.Children;
            }
        }

        static void Main(string[] args)
        {
            var list = new List<Equipment>();
            var e1 = new Equipment { Id = Guid.NewGuid(), ParentId = Guid.Empty, Name = "一级" };
            var e2 = new Equipment { Id = Guid.NewGuid(), ParentId = e1.Id, Name = "二级" };
            var e3 = new Equipment { Id = Guid.NewGuid(), ParentId = e2.Id, Name = "三级" };
            list.Add(e1);
            list.Add(e2);
            list.Add(e3);
            //对list 做树型结构处理
            //第一级
            var result = list.Where(a => a.ParentId == Guid.Empty).ToList();
            foreach (var item in result)
            {
                item.Children = GetChildren(item, list);
            }
            //result 树形结构完成
            Console.ReadKey();
        }

 

相关推荐

  1. C# 获取树形结构数据类型

    2023-12-13 10:08:27       94 阅读
  2. [数据结构]C++算法作业

    2023-12-13 10:08:27       51 阅读
  3. 树形模板

    2023-12-13 10:08:27       53 阅读
  4. C#系列-数据结构+算法+排序算法(3)

    2023-12-13 10:08:27       42 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-13 10:08:27       76 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-13 10:08:27       81 阅读
  3. 在Django里面运行非项目文件

    2023-12-13 10:08:27       65 阅读
  4. Python语言-面向对象

    2023-12-13 10:08:27       76 阅读

热门阅读

  1. 无分页情况下的接口优化

    2023-12-13 10:08:27       90 阅读
  2. C9900-H416的使用方法

    2023-12-13 10:08:27       60 阅读
  3. 顺序表

    顺序表

    2023-12-13 10:08:27      71 阅读
  4. ClickHouse中select final和optimize table final的区别

    2023-12-13 10:08:27       66 阅读
  5. 百度爬虫

    2023-12-13 10:08:27       68 阅读
  6. 12月11日总结

    2023-12-13 10:08:27       61 阅读
  7. 12月8日总结

    2023-12-13 10:08:27       49 阅读
  8. 每日博客

    2023-12-13 10:08:27       68 阅读
  9. 1213

    2023-12-13 10:08:27       68 阅读
  10. 阅读笔记《有效需求分析》2

    2023-12-13 10:08:27       76 阅读
  11. 12月13日总结

    2023-12-13 10:08:27       69 阅读
  12. 12月12日总结

    2023-12-13 10:08:27       63 阅读
  13. 每日总结

    2023-12-13 10:08:27       63 阅读
  14. Linux部署mosquitto及其配置

    2023-12-13 10:08:27       66 阅读
  15. pandas 遍历

    2023-12-13 10:08:27       64 阅读
  16. Qt打包

    2023-12-13 10:08:27       72 阅读
  17. 12.12总结

    2023-12-13 10:08:27       68 阅读