/ Published in: C#
Expand |
Embed | Plain Text
/// <summary> /// Flattens any tree into an enumeration /// </summary> /// <typeparam name="T"></typeparam> /// <param name="item"></param> /// <param name="next"></param> /// <returns></returns> public static IEnumerable<T> Flatten<T>(T item, Func<T, IEnumerable<T>> next) { yield return item; foreach (T child in next(item)) foreach (T flattenedChild in Flatten(child, next)) yield return flattenedChild; }
Comments
Subscribe to comments
You need to login to post a comment.

Looks like this would be a good extension method.