示例#1
0
 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);
 }
示例#2
0
        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);
        }