我有以下枚举:
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)