如果value是Enum值的一部分,则查找值

Jea*_*hhe 1 .net c# enums

我有类似下面的枚举,我想知道我是否有像string这样的变量= March 有一种简单的方法通过API来查找值(March)是枚举的一部分

public enum Month
{
    NotSet = 0,
    January = 1,
    February = 2,
    March = 3,
    April = 4,
    May = 5,
    June = 6,
    July = 7,
    August = 8,
    September = 9,
    October = 10,
    November = 11,
    December = 12
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*ell 5

你可以这样做:

Month result;
if(System.Enum.TryParse(value, true, out result)) {
    // is defined
}
Run Code Online (Sandbox Code Playgroud)

其中true控制区分大小写(或不区分).

(注意这实际上是TryParse<Month>(...),但编译器推断<Month>出来的out result,因为result定义为Month)