|
@@ -53,5 +53,51 @@ namespace ZhonTai.Common.Extensions
|
|
|
|
|
|
return treelist;
|
|
|
}
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 添加子级列表到平级列表
|
|
|
+ /// </summary>
|
|
|
+ /// <typeparam name="T">类型</typeparam>
|
|
|
+ /// <param name="list">平级列表</param>
|
|
|
+ /// <param name="getChilds">获得子级列表的方法</param>
|
|
|
+ /// <param name="entity">子级对象</param>
|
|
|
+ public static void AddListWithChilds<T>(List<T> list, Func<T, List<T>> getChilds, T entity = default)
|
|
|
+ {
|
|
|
+ var childs = getChilds(entity);
|
|
|
+ if (childs != null && childs.Count > 0)
|
|
|
+ {
|
|
|
+ list.AddRange(childs);
|
|
|
+ foreach (var child in childs)
|
|
|
+ {
|
|
|
+ AddListWithChilds(list, getChilds, child);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 将树形列表转换为平级列表
|
|
|
+ /// tree.ToPlainList((a) => a.Children);
|
|
|
+ /// </summary>
|
|
|
+ /// <typeparam name="T">类型</typeparam>
|
|
|
+ /// <param name="tree">树形列表</param>
|
|
|
+ /// <param name="getChilds">获得子级列表的方法</param>
|
|
|
+ /// <param name="entity">数据对象</param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public static List<T> ToPlainList<T>(this List<T> tree, Func<T, List<T>> getChilds, T entity = default)
|
|
|
+ {
|
|
|
+ var list = new List<T>();
|
|
|
+ if (tree == null || tree.Count == 0)
|
|
|
+ {
|
|
|
+ return list;
|
|
|
+ }
|
|
|
+
|
|
|
+ foreach (var item in tree)
|
|
|
+ {
|
|
|
+ list.Add(item);
|
|
|
+ AddListWithChilds(list, getChilds, item);
|
|
|
+ }
|
|
|
+
|
|
|
+ return list;
|
|
|
+ }
|
|
|
}
|
|
|
}
|