C# 如果值是枚举值的一部分,则查找值

C# 如果值是枚举值的一部分,则查找值,c#,.net,enums,C#,.net,Enums,我有如下所示的enum,我想知道是否有一个类似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,

我有如下所示的enum,我想知道是否有一个类似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
}

你可以这样做:

Month result;
if(System.Enum.TryParse(value, true, out result)) {
    // is defined
}
其中
true
控制区分大小写(或不区分大小写)


(注意,这实际上是
TryParse(…)
,但编译器从
输出结果中推断出
,因为
结果定义为

您可以执行以下操作:

Month result;
if(System.Enum.TryParse(value, true, out result)) {
    // is defined
}
其中
true
控制区分大小写(或不区分大小写)


(注意,这实际上是
TryParse(…)
,但编译器从
输出结果中推断出
,因为
结果
定义为

如果您只想知道某个值是否在枚举中定义,请使用:


如果要分析该值,请查看:

将一个或多个枚举常量的名称或数值的字符串表示形式转换为等效的枚举对象。返回值指示转换是否成功

您可以使用以下重载

public static bool TryParse<TEnum>(
    string value,
    bool ignoreCase,
    out TEnum result
)
publicstaticbooltryparse(
字符串值,
布尔·伊格诺凯斯,
结果
)
…就像这样:

Month month;
if (Enum.TryParse<Month>("March", true, out month)) {
    // ...
}
月;
if(枚举TryParse(“三月”,真,月外)){
// ...
}

如果您只想知道某个值是否在枚举中定义,请使用:


如果要分析该值,请查看:

将一个或多个枚举常量的名称或数值的字符串表示形式转换为等效的枚举对象。返回值指示转换是否成功

您可以使用以下重载

public static bool TryParse<TEnum>(
    string value,
    bool ignoreCase,
    out TEnum result
)
publicstaticbooltryparse(
字符串值,
布尔·伊格诺凯斯,
结果
)
…就像这样:

Month month;
if (Enum.TryParse<Month>("March", true, out month)) {
    // ...
}
月;
if(枚举TryParse(“三月”,真,月外)){
// ...
}
使用

检索指定数组中常量名称的数组 枚举

喜欢

或者作为拉斐尔

使用如何

检索指定数组中常量名称的数组 枚举

喜欢

或者作为拉斐尔

+1,或
Enum.GetName(typeof(月),“三月”)!=null
+1,或
Enum.GetName(typeof(Month),“March”)!=空