static void Main() { var tree = new Tree<string>("grandparent"); tree.AddChild(new Tree<string>("parent") .AddChild("child1") .AddChild("child2") .AddChild(new Tree<string>("child3") .AddChild("grandchild of 3(1)") .AddChild("grandchild of 3(2)"))) .AddChild("kuzman"); var iterator = new Treeterator<string>(tree); while(!iterator.Finished) { Console.WriteLine(iterator.Next); } // or Console.WriteLine("\n\n"); foreach (var item in tree) { Console.WriteLine(item); } }
// return a convential .NET iterator using the Treetarator class public IEnumerator <T> GetEnumerator() { var iterator = new Treeterator <T>(this); while (!iterator.Finished) { yield return(iterator.Next); } }