树形列表转换为普通列表

问题:现在有带父子关系的数据(比如,菜单树形数据、部门树形数据等),事先不知道该数据有多少层,但需要遍历出每一个节点

实现方法:递归

代码:

 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         }
View Code

 

posted @ 2023-06-14 19:15  逆风起降  阅读(18)  评论(0编辑  收藏  举报