Return to Snippet

Revision: 28746
at July 13, 2010 21:55 by leetreveil


Initial Code
/// <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;
        }

Initial URL

                                

Initial Description

                                

Initial Title
Flatten a tree into an enumeration

Initial Tags

                                

Initial Language
C#