我有这段代码:
public enum MyEnum
{
First = 6,
Data1 = 6,
Data2 = 7,
Data3 = 8,
Data4 = 9,
Data5 = 10,
Last = 10,
Invalid = -1
};
Enumerable<int> _myTypes = Enumerable.Range((int)MyEnum.First, (int)MyEnum.Last);
这将创建一个包含6到15个元素的枚举。我有等效的代码从1开始,它按预期工作。这似乎是一个错误或对我来说很奇怪。
答案 0 :(得分:8)
Enumerable.Range
获取start
值和count
值,而不是start
和end
值。
所以你要告诉它从6开始并取10个单位,因此6-15。
答案 1 :(得分:4)
相反,请调用Enum.GetValues
,如下所示:
IEnumerable<int> _myTypes = (int[])Enum.GetValues(typeof(MyEnum));
答案 2 :(得分:0)
糟糕,我看到Enumerable需要一个计数,而不是一个开始结束。如果从1开始,这似乎有效。