树形列表转换为普通列表
问题:现在有带父子关系的数据(比如,菜单树形数据、部门树形数据等),事先不知道该数据有多少层,但需要遍历出每一个节点
实现方法:递归
代码:
1 /// <summary> 2 /// 递归子级数据 3 /// </summary> 4 /// <param name="AllList"></param> 5 /// <param name="item"></param> 6 private static void OperationChildData(List<SysMenuDTO> AllList, SysMenuDTO item) 7 { 8 if (item.children != null) 9 { 10 if (item.children.Count > 0) 11 { 12 AllList.AddRange(item.children); 13 foreach (var subItem in item.children) 14 { 15 OperationChildData(AllList, subItem); 16 } 17 } 18 } 19 } 20 21 22 /// <summary> 23 /// 将父子级数据结构转换为普通list 24 /// </summary> 25 /// <param name="list"></param> 26 /// <returns></returns> 27 private static List<SysMenuDTO> GetMenuInfoList(List<SysMenuDTO> list) 28 { 29 List<SysMenuDTO> Resultlist = new List<SysMenuDTO>(); 30 foreach (var item in list) 31 { 32 OperationChildData(Resultlist, item); 33 Resultlist.Add(item); 34 } 35 return Resultlist; 36 }