我有以下枚举:

public enum SymbolWejsciowy
{
     K1 , K2 , K3 , K4 , K5 , K6 , K7 , K8
}

我想使用此枚举的值创建一个列表:
 public List<SymbolWejsciowy> symbol;

我尝试了几种不同的方法将枚举值添加到列表中:
SymbolWejsciowy symbol;
symbol.Add(symbol = SymbolWejsciowy.K1);


symbol.Add(SymbolWejsciowy.K1);

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



我如何正确地做到这一点?

最佳答案

正如其他答案已经指出的那样,问题在于您已经声明了一个列表,但是尚未构造一个列表,因此在尝试添加元素时会收到NullReferenceException

请注意,如果要构建新列表,可以使用更简洁的collection initializer syntax:

List<SymbolWejsciowy> symbols = new List<SymbolWejsciowy>
{
    SymbolWejsciowy.K1,
    SymbolWejsciowy.K2,
    // ...
};

如果要包含所有值的列表,则可以通过调用 Enum.GetValues 来获得:
List<SymbolWejsciowy> symbols = Enum.GetValues(typeof(SymbolWejsciowy))
                                    .Cast<SymbolWejsciowy>()
                                    .ToList();

07-25 20:31