Click or drag to resize
DigitalRuneTreeHelperGetDescendantsT Method (T, FuncT, IEnumerableT, Boolean)
Gets the descendants of a given node using a depth-first search or a breadth-first search.

Namespace: DigitalRune.Linq
Assembly: DigitalRune (in DigitalRune.dll) Version: 1.20.0.0 (1.20.1.14552)
Syntax
public static IEnumerable<T> GetDescendants<T>(
	T node,
	Func<T, IEnumerable<T>> getChildren,
	bool depthFirst
)
where T : class

Parameters

node
Type: T
The reference node where to start the search. (The reference node will not be included in the enumeration.)
getChildren
Type: SystemFuncT, IEnumerableT

A method that retrieves the children of an object of type T.

GetDescendantsT(T, FuncT, IEnumerableT, Boolean) guarantees that getChildren is never called with as parameter. The enumeration returned by getChildren may contain .

depthFirst
Type: SystemBoolean
If set to then a depth-first search for descendants will be made; otherwise a breadth-first search will be made.

Type Parameters

T
The type of node that is enumerated.

Return Value

Type: IEnumerableT
The descendants of node.
Exceptions
ExceptionCondition
ArgumentNullExceptionnode is .
ArgumentNullExceptiongetChildren is .
Remarks
This method can be used to traverse a tree in either depth-first order (preorder) or in breadth-first order (also known as level-order).
See Also