Click or drag to resize

MoreEnumerableTraverseDepthFirstT Method

Traverses a tree in a depth-first fashion, starting at a root node and using a user-defined function to get the children at each node of the tree.

Namespace:  MoreLinq
Assembly:  MoreLinq (in MoreLinq.dll) Version: 2.4.0
public static IEnumerable<T> TraverseDepthFirst<T>(
	T root,
	Func<T, IEnumerable<T>> childrenSelector


Type: T
The root of the tree to traverse
Type: SystemFuncT, IEnumerableT
The function that produces the children of each element

Type Parameters

The tree node type

Return Value

Type: IEnumerableT
A sequence containing the traversed values
This function defers traversal until needed and streams the results. The tree is not checked for loops. If the resulting sequence needs to be finite then it is the responsibility of childrenSelector to ensure that loops are not produced.
See Also