一尘不染

如何遍历C#中的所有枚举值?[重复]

c#

public enum Foos
{
A,
B,
C
}

有没有办法遍历可能的值Foos

基本上?

foreach(Foo in Foos)

阅读 451

收藏
2020-05-19

共1个答案

一尘不染

是的,你可以使用的GetValue‍‍‍s方法:

var values = Enum.GetValues(typeof(Foos));

或键入的版本:

var values = Enum.GetValues(typeof(Foos)).Cast<Foos>();

很久以前,我就在这种情况下向私有库添加了一个辅助函数:

public static class EnumUtil {
    public static IEnumerable<T> GetValues<T>() {
        return Enum.GetValues(typeof(T)).Cast<T>();
    }
}

用法:

var values = EnumUtil.GetValues<Foos>();
2020-05-19