C# 在Enum.IsDefined/Enum.Parse中是否有大小写不变的方法将字符串与枚举进行比较
因此,如果您无权访问枚举或控制要与枚举值进行比较的字符串,是否有比下面的代码更好或更干净的方法来获取匹配的枚举值并在调用中使用它:C# 在Enum.IsDefined/Enum.Parse中是否有大小写不变的方法将字符串与枚举进行比较,c#,enums,C#,Enums,因此,如果您无权访问枚举或控制要与枚举值进行比较的字符串,是否有比下面的代码更好或更干净的方法来获取匹配的枚举值并在调用中使用它: Enum.IsDefined() or Enum.Parse() 示例: var enumValues = Enum.GetValues(typeof(someType)); foreach (var value in enumValues) { if (value.ToString().ToLowerInvariant() ==
Enum.IsDefined() or
Enum.Parse()
示例:
var enumValues = Enum.GetValues(typeof(someType));
foreach (var value in enumValues) {
if (value.ToString().ToLowerInvariant() == stringToCompare.ToLowerInvariant()) {
stringToCompare = value.ToString();
}
}
此时,如果存在匹配项,您将拥有正确的枚举值,然后可以在(enum.IsDefinied()或enum.Parse()中使用该值)
还有比我定义的更好的方法吗
someType varName = Enum.Parse(typeof(someType), stringToCompare, true);
使用enum.Parse的这个重载
有一个重载,可以使它不区分大小写。但我想isDefined没有。至少在3.5中没有