将未知数量的孩子加载到 TreeNode

问题描述

我从 API 获取数据,其中为每个用户存储档案。 每个存档可以有 1 到无限个子存档,每个子存档可以有 1 到 ulimited 子存档,依此类推。

如何在没有 400 个循环的情况下将每个存档及其子存档加载到 TreeNode 中。 我想过递归,但我不确定是否有更好的方法。

VB 示例:

Sub Main()
    For Each archive in Archives
        TreeView1.Nodes.Add(AllChilds(archive))
    Next
End Sub

Function AllChilds(parent_archive As Archive)
    If parent_archive.Archives.Count > 0 Then
        For Each subArchive As Archive In parent_archive.Archives
            If subArchive.Archives.Count > 0 Then
                TreeView1.Nodes.Add(subArchive.DisplayName)
                AllChilds(subArchive)
            Else
                Return subArchive
            End If
        Next subArchive
    Else
        Return parent_archive
    End If
End Function

C# 示例:

class SurroundingClass
{
    public void Main()
    {
        foreach (archive as Archive in archives.Archives)
            TreeView1.Nodes.Add(AllChilds(archive));
    }

    private void AllChilds(Archive parent_archive)
    {
        if (parent_archive.Archives.Count > 0)
        {
            foreach (Archive subArchive in parent_archive.Archives)
            {
                if (subArchive.Archives.Count > 0)
                {
                    TreeView1.Nodes.Add(subArchive.DisplayName);
                    AllChilds(subArchive);
                }
                else
                    return subArchive;
            }
        }
        else
            return parent_archive;
    }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)