Click or drag to resize
DigitalRuneTreeHelperGetSubtreeT Method (T, FuncT, IEnumerableT, Boolean)
Gets the subtree (the given node and all of its descendants) 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> GetSubtree<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 be the first element in the enumeration.)
getChildren
Type: SystemFuncT, IEnumerableT

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

GetSubtreeT(T, FuncT, IEnumerableT) 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 subtree 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