コード例 #1
0
 /// <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);
             }
         }
     }
 }
コード例 #2
0
        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--;
        }
コード例 #3
0
 /// <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);
 }