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 =>!list.Any(b=>a.ParentId==b.Id)).ToList(); foreach (var item in result) { item.Children = GetChildren(item, list); } //result 树形结构完成 Console.ReadKey(); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具