当需要动态调整多维列表时,我会使用什么

本文关键字:什么 列表 动态 调整 | 更新日期: 2023-09-27 18:22:00

我有一个列表,我想将其用作动态扩展的树视图,但如果我要在一个列表中有多个列表,则需要在初始列表的定义中声明。为了实现这一目标,我缺少了什么?有什么更好的东西可以用来实现我的目标吗?

出于上下文的考虑:我试图像树视图一样填充它,这样我就可以在我的应用程序中复制注册表。

当需要动态调整多维列表时,我会使用什么

为您的场景使用正确的类型。

在您的情况下,这是一个类TreeNode,类似于:

public class TreeNode
{
    private readonly List<TreeNode> _children = new List<TreeNode>();
    public TreeNode(string name, params TreeNode[] children)
    {
        Name = name;
        _children.AddRange(children);
    }
    public List<TreeNode> Children { get { return _children; } }
    public string Name { get; set; }
}

假设以下树:

Root
+ Child1
  + Child1a
  + Child1b
+ Child2
  + Child2a
    + Child2aA
    + Child2aB
  + Child2b

你可以这样创建它:

var root = new TreeNode("Root",
                        new TreeNode("Child1",
                                     new TreeNode("Child1a"),
                                     new TreeNode("Child1b")),
                        new TreeNode("Child2",
                                     new TreeNode("Child2a",
                                                  new TreeNode("Child2aA"),
                                                  new TreeNode("Child2aB")),
                                     new TreeNode("Child2b")));