C#实现无限层级树

匿名 (未验证) 提交于 2019-12-03 00:39:02

namespace Test {     class Program     {         static void Main(string[] args)         {
           //实现层级树的方法             var list = new List<Menu>()             {                 new Menu () { Id = 1, Name = "主菜单1", PId = 0  },                 new Menu () { Id = 2, Name = "下级菜单11", PId = 1  },                 new Menu () { Id = 3, Name = "主菜单2", PId = 0  },                 new Menu () { Id = 4, Name = "下级菜单21", PId = 3 },                 new Menu () { Id = 5, Name = "下下级菜单212", PId = 4  }             };              var dictMenus = new Dictionary<int, Menu>(list.Count);              foreach (var menu in list)             {                 dictMenus.Add(menu.Id, menu);             }              foreach (var value in dictMenus.Values)             {                 if (dictMenus.ContainsKey(value.PId))                 {                     if (dictMenus[value.PId].Children == null)                         dictMenus[value.PId].Children = new List<Menu>();                     dictMenus[value.PId].Children.Add(value);                 }             }             var result = dictMenus.Values.Where(t => t.PId == 0).ToList();         }     }      public class Menu     {         public int Id { get; set; }         public string Name { get; set; }         public int PId { get; set; }         public List<Menu> Children { get; set; }     } }


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!