Перечисления похожи на целые числа, но вы не можете полагаться на их значения, чтобы они всегда были последовательными или восходящими. Вы можете присвоить целочисленные значения значениям перечисления, которые нарушат ваш простой цикл for
:
public class Program
{
enum MyEnum
{
First = 10,
Middle,
Last = 1
}
public static void Main(string[] args)
{
for (int i = (int)MyEnum.First; i <= (int)MyEnum.Last; i++)
{
Console.WriteLine(i); // will never happen
}
Console.ReadLine();
}
}
Как говорили другие, вместо этого Enum.GetValues
.