Exemple #1
0
 public static BackendData.Foo FindNodeRecursive(BackendData.Foo item, int id)
 {
     if (item == null)
     {
         return((BackendData.Foo)null);
     }
     if (item.id == id)
     {
         return(item);
     }
     if (item.children == null)
     {
         return((BackendData.Foo)null);
     }
     using (List <BackendData.Foo> .Enumerator enumerator = item.children.GetEnumerator())
     {
         while (enumerator.MoveNext())
         {
             BackendData.Foo nodeRecursive = BackendData.FindNodeRecursive(enumerator.Current, id);
             if (nodeRecursive != null)
             {
                 return(nodeRecursive);
             }
         }
     }
     return((BackendData.Foo)null);
 }
Exemple #2
0
        protected override HashSet <int> GetParentsAbove(int id)
        {
            HashSet <int> set = new HashSet <int>();

            for (BackendData.Foo foo = BackendData.FindNodeRecursive(this.m_Backend.root, id); foo != null; foo = foo.parent)
            {
                if (foo.parent != null)
                {
                    set.Add(foo.parent.id);
                }
            }
            return(set);
        }
Exemple #3
0
 public HashSet <int> GetParentsBelow(int id)
 {
     BackendData.Foo nodeRecursive = BackendData.FindNodeRecursive(this.root, id);
     if (nodeRecursive == null)
     {
         return(new HashSet <int>());
     }
     if (this.m_RecursiveFindParentsBelow)
     {
         return(this.GetParentsBelowRecursive(nodeRecursive));
     }
     return(this.GetParentsBelowStackBased(nodeRecursive));
 }
Exemple #4
0
 public static BackendData.Foo FindNodeRecursive(BackendData.Foo item, int id)
 {
     if (item == null)
     {
         return(null);
     }
     if (item.id == id)
     {
         return(item);
     }
     if (item.children == null)
     {
         return(null);
     }
     foreach (BackendData.Foo current in item.children)
     {
         BackendData.Foo foo = BackendData.FindNodeRecursive(current, id);
         if (foo != null)
         {
             return(foo);
         }
     }
     return(null);
 }