You could write a simple extension method to perform recursive tasks:
public static class ObjectExtensions
{
public static IEnumerable<T> Recurse<T>(this T value, Func<T, IEnumerable<T>> recursed)
{
yield return value;
foreach (T rItem in recursed(value))
{
foreach (var innerItem in rItem.Recurse(recursed))
yield return innerItem;
}
}
}
Try this usage of the above method:
foreach (var item in @"C:\program files\".Recurse(d => Directory.GetDirectories(d)))
Console.WriteLine(item);
Coding Light - Illuminated Ideas and Algorithms in SoftwareCoding Light Wiki •
LinkedIn •
ForumsBrowser