/// <summary> /// Iterate over childs of root node. /// </summary> /// <param name="root">The root.</param> /// <param name="iteratorFunc">The iterator func.</param> public void Iterator(ISPSTreeNode <ISPSHierarchyNode> root, SPSHierarchyIteratorFunc iteratorFunc) { if (root != null) { foreach (ISPSTreeNode <ISPSHierarchyNode> node in root.Children) { if (iteratorFunc != null) { iteratorFunc(node.Node, node.Children.Count); } } } }
private void IteratorRecursiveInternal(ISPSTreeNode <ISPSHierarchyNode> root, SPSHierarchyIteratorFunc iteratorFunc) { if (iteratorFunc != null) { iteratorFunc(root.Node, _deep); } _deep++; foreach (ISPSTreeNode <ISPSHierarchyNode> node in root.Children) { IteratorRecursiveInternal(node, iteratorFunc); } _deep--; }
/// <summary> /// Iterators the recursive. /// </summary> /// <param name="root">The root.</param> /// <param name="iteratorFunc">The iterator func.</param> public void IteratorRecursive(ISPSTreeNode <ISPSHierarchyNode> root, SPSHierarchyIteratorFunc iteratorFunc) { _deep = 0; IteratorRecursiveInternal(root, iteratorFunc); }