【发布时间】:2021-02-05 07:18:38
【问题描述】:
我从为每个用户存储档案的 API 获取数据。 每个存档可以有 1 到无限个子存档,每个子存档可以有 1 到无限个子存档,依此类推。
如何在没有 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;
}
}
【问题讨论】: