enumerable.range中的错误?

时间:2010-06-18 22:18:45

标签: .net linq

我有这段代码:

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开始,它按预期工作。这似乎是一个错误或对我来说很奇怪。

3 个答案:

答案 0 :(得分:8)

Enumerable.Range获取start值和count值,而不是startend值。

所以你要告诉它从6开始并取10个单位,因此6-15。

答案 1 :(得分:4)

相反,请调用Enum.GetValues,如下所示:

IEnumerable<int> _myTypes = (int[])Enum.GetValues(typeof(MyEnum));

答案 2 :(得分:0)

糟糕,我看到Enumerable需要一个计数,而不是一个开始结束。如果从1开始,这似乎有效。