private void FillChildren(MNode <TVal> father, IList <TVal> members) { foreach (TVal mem in members) { if ((mem.FatherID == father.TheValue.CurrentID) && (mem.CurrentID != (father.TheValue.CurrentID))) { father.AddChild(mem); } } foreach (MNode <TVal> mem in father.Children) { this.FillChildren(mem, members); } }
private MNode <TVal> DOAppendOffSprings(MNode <TVal> current, string[] offSpringIDs, int startIndex) { MNode <TVal> temp = current; for (int i = startIndex; i < offSpringIDs.Length; i++) { TVal child = this.agileNodePicker.Retrieve(offSpringIDs[i]); if (child == null) { return(null); } else { temp = temp.AddChild(child); } } return(temp); }