Traverse an enumerable tree, depth or breadth first. Example: var dirs = new DirectoryInfo("C:\\") .Traverse(TraverseKind.BreadthFirst, dir => dir.EnumerateDirectories());
$ dotnet add package netfx-System.Collections.Generic.IEnumerable.TraverseNo README available.