/// <summary> /// 过滤 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="item"></param> /// <param name="func"></param> /// <returns></returns> public static IEnumerable <Tree <T> > Filter <T>(this Tree <T> item, Func <Tree <T>, bool> func) where T : class { return(new[] { item }.Filter(func)); }
/// <summary> /// 是否是叶子节点 /// </summary> public static bool IsLeaf <T>(this Tree <T> tree) => tree.Children?.Count == 0;
/// <summary> /// 是否是根节点 /// </summary> public static bool IsRoot <T>(this Tree <T> tree) => tree.Parent == null;
/// <summary> /// 所有父级 /// </summary> public static ICollection <Tree <T> > AllParent <T>(this Tree <T> tree, Func <Tree <T>, Tree <T> > selector) => GetParents(tree, selector);
/// <summary> /// 所有子级 /// </summary> public static ICollection <Tree <T> > AllChildren <T>(this Tree <T> tree, Func <Tree <T>, IEnumerable <Tree <T> > > selector) => GetChildren(tree, selector);
/// <summary> /// 所有子级 /// </summary> public static ICollection <Tree <T> > AllChildren <T>(this Tree <T> tree) => GetChildren(tree, c => c.Children);