public void ForEachElementInTree_BreadthFirst(IUIElementAction action) { LinkedList <UIElement> searchList = new LinkedList <UIElement>(new UIElement[] { this }); LinkedListNode <UIElement> current; while ((current = searchList.First) != null) { action.Execute(current.Value); searchList.RemoveFirst(); current.Value.AddChildren(searchList); } }
public void ForEachElementInTree_DepthFirst(IUIElementAction action) { Stack <UIElement> searchStack = new Stack <UIElement>(); IList <UIElement> elementList = new List <UIElement>(); searchStack.Push(this); while (searchStack.Count > 0) { UIElement current = searchStack.Pop(); action.Equals(current); elementList.Clear(); current.AddChildren(elementList); foreach (UIElement child in elementList) { searchStack.Push(child); } } }
public void ForEachElementInTree_DepthFirst(IUIElementAction action) { Stack<UIElement> searchStack = new Stack<UIElement>(); IList<UIElement> elementList = new List<UIElement>(); searchStack.Push(this); while (searchStack.Count > 0) { UIElement current = searchStack.Pop(); action.Equals(current); elementList.Clear(); current.AddChildren(elementList); foreach (UIElement child in elementList) searchStack.Push(child); } }
public void ForEachElementInTree_BreadthFirst(IUIElementAction action) { LinkedList<UIElement> searchList = new LinkedList<UIElement>(new UIElement[] { this }); LinkedListNode<UIElement> current; while ((current = searchList.First) != null) { action.Execute(current.Value); searchList.RemoveFirst(); current.Value.AddChildren(searchList); } }