C#是否有不区分大小写的等号运算符?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (43)

我知道以下区分大小写:

if (StringA == StringB) {

那么有没有一个运算符会以不敏感的方式比较两个字符串?

提问于
用户回答回答于

这个:

string.Equals(a, b, StringComparison.CurrentCultureIgnoreCase);
用户回答回答于

通常情况下,有两种方法可以不区分大小写比较字符串:

慢方法:使用String.ToLower或更快的String.ToLowerInvariant方法将两个字符串转换为小写,并将结果字符串与“==”运算符进行比较

快方法:使用指定序号忽略大小写字符串比较的String.Equals静态方法。

第二种方法的速度提高了9倍!所以在可能的情况下使用String.Equals方法:

String.Equals(string1, string2, StringComparison.OrdinalIgnoreCase);

如果想执行文化特定的字符串比较,可以使用下面的代码:

String.Equals(string1, string2, StringComparison.CurrentCultureIgnoreCase);

请注意,此调用使用当前区域性的字符串比较逻辑,这使得它比上面显示的“序号忽略大小写”比较慢,所以如果不需要任何区域性特定的字符串比较逻辑,并且达到了最高性能,使用“序号忽略情况”比较。

扫码关注云+社区