Open sandboxFocus

Method SelectManyRecursiveDistinct

SelectManyRecursiveDistinct<T>(T, Func<T, IEnumerable<T>?>, bool)

Declaration
public static HashSet<T> SelectManyRecursiveDistinct<T>(this T root, Func<T, IEnumerable<T>?> getChildren, bool includeRoot = true) where T : class
Parameters
Type Name Description
T root
Func<T, IEnumerable<T>> getChildren
bool includeRoot
Returns
Type Description
HashSet<T>
Type Parameters
Name Description
T

SelectManyRecursiveDistinct<T>(IEnumerable<T>, Func<T, IEnumerable<T>?>, bool)

Declaration
public static HashSet<T> SelectManyRecursiveDistinct<T>(this IEnumerable<T> roots, Func<T, IEnumerable<T>?> getChildren, bool includeRoots = true) where T : class
Parameters
Type Name Description
IEnumerable<T> roots
Func<T, IEnumerable<T>> getChildren
bool includeRoots
Returns
Type Description
HashSet<T>
Type Parameters
Name Description
T

SelectManyRecursiveDistinct<T>(IEnumerable<T>, Func<T, IEnumerable<T>?>, IEqualityComparer<T>, bool)

Declaration
public static HashSet<T> SelectManyRecursiveDistinct<T>(this IEnumerable<T> roots, Func<T, IEnumerable<T>?> getChildren, IEqualityComparer<T> equalityComparer, bool includeRoots = true)
Parameters
Type Name Description
IEnumerable<T> roots
Func<T, IEnumerable<T>> getChildren
IEqualityComparer<T> equalityComparer
bool includeRoots
Returns
Type Description
HashSet<T>
Type Parameters
Name Description
T