C#实现无限层级树
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; }}
}
?
轉載于:https://www.cnblogs.com/xiaowangzhi/p/9016358.html
總結
- 上一篇: js array 的理解
- 下一篇: RHEL 6.5 + Oracle 11