Skip to content

Instantly share code, notes, and snippets.

@pregress
Created June 20, 2013 06:30
Show Gist options
  • Save pregress/5820672 to your computer and use it in GitHub Desktop.
Save pregress/5820672 to your computer and use it in GitHub Desktop.
TraverseTree
public static IEnumerable<T> TraverseTree<T>(this T parent, Func<T, IEnumerable<T>> getChildren)
{
yield return parent;
foreach (var child in getChildren(parent))
{
foreach (var item in child.TraverseTree(getChildren))
{
yield return item;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment