【问题标题】:is it possible to add a list to a structure?是否可以将列表添加到结构中?
【发布时间】:2009-05-13 04:35:54
【问题描述】:

是否可以将列表添加到结构中?

public struct test
{
    public string x;
    list<string> y = new list<string>();
}

类似的东西?

我一直在尝试,但我只是没有得到它

【问题讨论】:

    标签: c# list data-structures


    【解决方案1】:

    是的,您可以在 struct 中拥有一个列表,但您不能使用字段初始化器对其进行初始化,而是必须使用构造函数。

    struct MyStruct
    {
        public List<string> MyList;
        public int MyInt;
    
        public MyStruct(int myInt)
        {
            MyInt = myInt;
            MyList = new List<string>();
        }
    }
    

    【讨论】:

    • 还要注意你不能有一个无参数的构造函数。
    • 重点是......结构不应引用可变类型(或可变实体的集合)
    【解决方案2】:

    struct 可以有一个构造函数,你可以在构造函数中实例化列表。

    【讨论】:

      【解决方案3】:

      我不是 C# 方面的专家,但结构只是您的记忆外观的原型。您必须声明一个结构变量才能执行“new list()”并将其分配给一个列表变量。

      类似 struct test a; a.y = 新列表();

      我从未使用 C# 编程,所以请将我的 C 语法转换为 C#。

      【讨论】:

        【解决方案4】:

        你可以这样做 - 为结构声明一个构造函数并在结构构造函数中创建一个列表实例。您不能使用您在代码 sn-p 中建议的初始化程序。

        【讨论】:

        • "私有列表 y = new List();"给我“错误CS0573:`test.y':结构不能有实例字段初始化器”当然可以用一个类来完成......
        猜你喜欢
        • 2013-09-22
        • 1970-01-01
        • 1970-01-01
        • 2013-03-29
        • 2020-01-24
        • 2012-07-21
        • 2018-10-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多