Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- static class Dumper
- {
- public static string Dump(Node root)
- {
- var sb = new StringBuilder();
- foreach (var line in dump(root))
- sb.AppendLine(line);
- return sb.ToString();
- }
- static private IEnumerable<string> dump(Node root)
- {
- yield return root.Text;
- if (root.Children.Count == 0)
- yield break;
- for (int i = 0; i < root.Children.Count; i++)
- {
- bool firstLineOfChild = true;
- bool lastChild = i == root.Children.Count - 1;
- foreach (var line in dump(root.Children[i]))
- {
- string prefix = lastChild
- ? (firstLineOfChild ? "└─" : " ")
- : (firstLineOfChild ? "├─" : "│ ");
- yield return prefix + line;
- firstLineOfChild = false;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement