public void AddChild(TreeNode <TContent, TId> child, bool removePending = true) { if (removePending && PendingChildrenIds != null && PendingChildrenIds.Contains(child.ID)) { PendingChildrenIds.Remove(child.ID); } Children.Add(child.ID, child); }
public List <string> GetStringRepresentation(string indent, bool last) { string line = indent; var output = new List <string>(); if (last) { line += ("╚════>"); indent += " "; } else { line += ("╠════>"); indent += "║ "; } if (PendingChildrenIds.Count == 0) { line += this.ToString(); } else { line += $"{this.ToString()} ══> Linked Elsewhere : [{string.Join(",", PendingChildrenIds.Select(x => (x==null?"END":x.ToString())))}]"; } output.Add(line); foreach (var x in Children.Values) { output.AddRange(x.GetStringRepresentation(indent, x.Equals(Children.Values.Last()))); } return(output); }