如何声明静态只读列表?

时间:2018-09-01 20:08:29

标签: c# list struct readonly

我有一个结构,我想有一个这种类型的静态只读列表。 在只读状态下,未找到结构属性(HexCode,Name)。公开它们并没有任何改变。

这是结构声明:

public struct FixedDataStruct
{
    string HexCode;
    string Name;
}

这是列表:

private static readonly List<FixedDataStruct> myList= new List<FixedDataStruct>
{
        { HexCode = "12", Name = "Chenger" };
};

2 个答案:

答案 0 :(得分:3)

怎么样?

private static readonly List<FixedDataStruct> myList = new List<FixedDataStruct>
{
    new FixedDataStruct("12","Chenger")
};

public struct FixedDataStruct
{
    public FixedDataStruct(string hexCode, string name)
    {
        HexCode = hexCode;
        Name = name;
    }

    string HexCode;
    string Name;
}

答案 1 :(得分:1)

找不到

HexCode和Name,因为它们是FixedDataStruct的字段,但是您要为其分配它们,就像它们是List对象中匿名对象的成员一样。您必须首先创建FixedDataStruct的实例,将其添加到列表中,然后分配其字段:

public struct FixedDataStruct
{
    public string HexCode;
    public string Name;
}

private static readonly List<FixedDataStruct> myList = new List<FixedDataStruct>() { 
    new FixedDataStruct() { HexCode = "12", Name = "Chenger" }
};