Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在Enum.IsDefined/Enum.Parse中是否有大小写不变的方法将字符串与枚举进行比较_C#_Enums - Fatal编程技术网

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中没有