如何将枚举值添加到列表中

net*_*jor 14 c# enums list

我有以下枚举:

public enum SymbolWejsciowy
{
     K1 , K2 , K3 , K4 , K5 , K6 , K7 , K8 
}
Run Code Online (Sandbox Code Playgroud)

我想使用此枚举的值创建一个列表:

 public List<SymbolWejsciowy> symbol;
Run Code Online (Sandbox Code Playgroud)

我尝试了几种不同的方法将枚举值添加到列表中:

SymbolWejsciowy symbol;  
symbol.Add(symbol = SymbolWejsciowy.K1); 
Run Code Online (Sandbox Code Playgroud)

symbol.Add(SymbolWejsciowy.K1); 
Run Code Online (Sandbox Code Playgroud)

但是,我总是得到以下异常:

你调用的对象是空的.

我怎样才能正确地完成这个?

Mar*_*ers 18

正如其他答案已经指出的那样,问题是你已经声明了一个列表,但是你还没有构建一个列表,所以NullReferenceException当你尝试添加元素时就得到了一个列表.

请注意,如果要构建新列表,可以使用更简洁的集合初始化程序语法:

List<SymbolWejsciowy> symbols = new List<SymbolWejsciowy> 
{
    SymbolWejsciowy.K1,
    SymbolWejsciowy.K2,
    // ...
};
Run Code Online (Sandbox Code Playgroud)

如果你想要一个包含所有值的列表,那么你可以通过调用Enum.GetValues:

List<SymbolWejsciowy> symbols = Enum.GetValues(typeof(SymbolWejsciowy))
                                    .Cast<SymbolWejsciowy>()
                                    .ToList();
Run Code Online (Sandbox Code Playgroud)