C# 在C中使用类作为列表对象

C# 在C中使用类作为列表对象,c#,list,tree,C#,List,Tree,我需要在控制台中创建模拟菜单的代码,该控制台具有子菜单,这些子菜单也是菜单: class MenuItem { public int ID; public string Caption; public List<MenuItem> Children; } 如何申报儿童?不确定我是否理解您的问题,但是: public List<MenuItem> Children = new List<MenuItem>(); 只需添加子项=新列表

我需要在控制台中创建模拟菜单的代码,该控制台具有子菜单,这些子菜单也是菜单:

class MenuItem
{
    public int ID;
    public string Caption;
    public List<MenuItem> Children;
}

如何申报儿童?

不确定我是否理解您的问题,但是:

public List<MenuItem> Children = new List<MenuItem>();
只需添加子项=新列表

然后,如果要添加项目,只需执行以下操作:
Children.addnewmenuitem

您已经声明了它,您想知道如何初始化它吗?有很多方法可以做到这一点。你的问题不是很清楚。你已经完成了你的要求!使用TreeView对象,而不是创建自己的自定义接口。您可能需要类MenuItem的构造函数来使用空列表初始化Childen属性,或者在尝试外接程序C6时会出现ad异常。您可以使用属性Initializers@Matteo-你句子的第一部分错了,创建列表的实例并不要求您可以实际创建T的实例。此外,如果未定义构造函数,则会推断出一个公共无参数构造函数,因此建议的Add调用@Vegahyo可以正常工作。
using System.Collections.ObjectModel;
public class MenuItem
{
    public MenuItem()
    {
        Children = new Collection<MenuItem>();
    }

    public int ID { get; set; }
    public string Caption { get; set; }
    public Collection<MenuItem> Children { get; private set; }
}
using System.Collections.ObjectModel;
public class MenuItem
{
    public MenuItem()
    {
        Children = new Collection<MenuItem>();
    }

    public int ID { get; set; }
    public string Caption { get; set; }
    public Collection<MenuItem> Children { get; private set; }
}
var parent = new MenuItem { Caption = "Parent" };
parent.Children.Add(new MenuItem { Caption = "Child1" });