Beispiel #1
0
        /// <summary>
        /// 递归取出所有上级
        /// </summary>
        /// <param name="t"></param>
        /// <returns></returns>
        private static List <T> GetParents <T>(ITreeParent <T> t) where T : ITreeParent <T>
        {
            var list = new List <T>()
            {
                t.Parent
            };

            return(t.Parent != null?list.Union(GetParents(t.Parent)).ToList() : list);
        }
Beispiel #2
0
 /// <summary>
 /// 深度层级
 /// </summary>
 public static int Level <T>(this ITreeParent <T> tree) where T : ITreeParent <T> => IsRoot(tree) ? 1 : Level(tree.Parent) + 1;
Beispiel #3
0
 /// <summary>
 /// 是否是根节点
 /// </summary>
 public static bool IsRoot <T>(this ITreeParent <T> tree) where T : ITreeParent <T> => tree.Parent == null;
Beispiel #4
0
 /// <summary>
 /// 所有父级
 /// </summary>
 public static ICollection <T> AllParent <T>(this ITreeParent <T> tree) where T : ITreeParent <T> => GetParents(tree);