如何迭代这个枚举给出了从无到西的所有值

时间:2010-10-28 09:08:13

标签: c#-3.0

enum Orientation
{
    None = -1,
    North = 0,
    East = 1,
    South = 2,
    West = 3
}

如何迭代此枚举,将所有值从无到西

1 个答案:

答案 0 :(得分:2)

使用Enum.GetValues

Orientation[] orientations = (Orientation[]) Enum.GetValues(typeof(Orientation));

请注意,0是None的更常规值,因为它将是Orientation类型的任何实例/静态字段的默认值,以及数组中的初始值等。

编辑:Enum.GetValues被记录为返回“按枚举常量的二进制值排序”的值 - 我相信它将它们视为无符号值。

幸运的是,有一个简单的答案:

Orientation[] orientations = (Orientation[]) Enum.GetValues(typeof(Orientation));
Array.Sort(orientations);