我有以下enum
声明:
enum MyType
{
Boolean,
Int,
Double,
String
}
然后,如果我有string abc = "anyvalue"
,我如何检查abc
值是bool,int,double还是对应于myType
枚举值的字符串?
答案 0 :(得分:6)
您可以使用Enum.TryParse
方法。如果将值成功解析为其中一个枚举值,同时还输出已解析的枚举值,则返回true。
如果要在执行解析时忽略大小写,请使用接受布尔参数的重载。
MyType type;
if (Enum.TryParse(abc, out type))
{
// can be parsed
switch (type)
{
case MyType.Boolean: break;
case MyType.Int: break;
case MyType.Double: break;
case MyType.String: break;
}
}
也可以使用Enum.IsDefined
,但此方法始终执行区分大小写的搜索,因此它不如Enum.TryParse
灵活,只能用于知道名称是否已定义。 / p>
答案 1 :(得分:0)
使用此:
MyType dummy;
if(bool isEnum = Enum.TryParse(mystring,out dummy))
{
// mystring is a valid enum
}