递归地将子节点添加到父节点

本文关键字:父节点 添加 子节点 递归 | 更新日期: 2023-09-27 18:07:50

我有一个问题似乎解决不了。

我正在动态地构建一个TreeView,我有一个有序的列表。我希望TreeView以这样的方式构建:

Node1

_Node2

__ Node3

__ _Node . . N

我的代码如下:
        TreeNode tn = new TreeNode();
        for (int i = 0; i < EmployeesReportingLine.Count; i++ )
        {
            Employee ep = EmployeesReportingLine[i];
            while (tn.ChildNodes.Count > 0)
                tn = tn.ChildNodes[0];
            TreeNode temp = new TreeNode(ep.FullName);
            if (i > 0)
                tn.ChildNodes.Add(temp);
            else
                tn = temp;
        }
        TreeView1.Nodes.Add(tn);

我已经做了一些使用递归函数的其他尝试,但上面的代码片段是我最好的尝试。

递归地将子节点添加到父节点

    private void addNode(TreeNodeCollection nodes, TreeNode newnode) {
        if (nodes.Count == 0) nodes.Add(newnode);
        else addNode(nodes[0].Nodes, newnode);
    }

或:

    private void addNode2(TreeNode start, TreeNode newnode) {
        if (start.Nodes.Count == 0) start.Nodes.Add(newnode);
        else addNode2(start.Nodes[0], newnode);
    }