Recursive lambda expression to traverse a tree in C#

后端 未结 4 1231
萌比男神i
萌比男神i 2020-12-04 10:35

Can someone show me how to implement a recursive lambda expression to traverse a tree structure in C#.

4条回答
  •  我在风中等你
    2020-12-04 11:01

    Ok, I found some free time finally.
    Here we go:

    class TreeNode
    {
        public string Value { get; set;}
        public List Nodes { get; set;}
    
    
        public TreeNode()
        {
            Nodes = new List();
        }
    }
    
    Action traverse = null;
    
    traverse = (n) => { Console.WriteLine(n.Value); n.Nodes.ForEach(traverse);};
    
    var root = new TreeNode { Value = "Root" };
    root.Nodes.Add(new TreeNode { Value = "ChildA"} );
    root.Nodes[0].Nodes.Add(new TreeNode { Value = "ChildA1" });
    root.Nodes[0].Nodes.Add(new TreeNode { Value = "ChildA2" });
    root.Nodes.Add(new TreeNode { Value = "ChildB"} );
    root.Nodes[1].Nodes.Add(new TreeNode { Value = "ChildB1" });
    root.Nodes[1].Nodes.Add(new TreeNode { Value = "ChildB2" });
    
    traverse(root);
    

提交回复
热议问题