假如我们有如下 Shape 枚举类型, 我们要遍历其中所有的枚举值

1
2
3
4
5
6
public enum Shape
{
Circle,
Triangle,
Rect
}

可以通过 GetValues 方法实现:

1
2
3
4
5
6
var shapes = Enum.GetValues(typeof(Shape));

foreach (var shape in shapes)
{
DoSomething(shape);
}

另外我们还可以做一点封装

1
2
3
4
5
6
7
public static class EnumUtil {
public static IEnumerable<T> GetValues<T>() {
return Enum.GetValues(typeof(T)).Cast<T>();
}
}

var shapes = EnumUtil.GetValues<Shape>();