当前位置:  开发笔记 > 编程语言 > 正文

是否存在C#大小写不敏感的等于运算符?

如何解决《是否存在C#大小写不敏感的等于运算符?》经验,为你挑选了6个好方法。

我知道以下是区分大小写的:

if (StringA == StringB) {

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



1> John Feminel..:

试试这个:

string.Equals(a, b, StringComparison.CurrentCultureIgnoreCase);


如果您想要文化敏感的比较,请使用此方法.如果您只想确保"FILE"和"file"都被接受,请使用"OrdinalIgnoreCase",否则您的代码可能无法在土耳其语语言环境中使用.有关详细信息,请参阅http://www.moserware.com/2008/02/does-your-code-pass-turkey-test.html
不确定塞缪尔在谈论什么......这个答案是完美的.它的正确和不言自明.它不需要参考.+1
@Sanjay Manohar然后编写一个自定义操作符 - 我建议使用更好的键盘.
唉这真是太可怕了!我的键盘会磨损.我可以使用"`如果A $ = B $然后转到10"的日子已经一去不复返了

2> Pavel Vladov..:

比较2个字符串忽略字母大小写的最佳方法是使用String.Equals静态方法指定序数忽略大小写字符串比较.这也是最快的方法,比将字符串转换为大写或大写更快,并在此之后进行比较.

我测试了两种方法的性能和序数忽略情况下字符串比较快了9倍!它比将字符串转换为小写或大写更可靠(请查看土耳其语问题).因此,始终使用String.Equals方法来比较字符串是否相等:

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

如果要执行特定于区域性的字符串比较,可以使用以下代码:

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

请注意,第二个示例使用当前区域性的字符串比较逻辑,这使得它比第一个示例中的"序数忽略大小写"比较慢,因此如果您不需要任何特定于区域性的字符串比较逻辑,那么在最大性能之后,使用"序数忽略情况"比较.

有关更多信息,请阅读我博客上的完整故事.


"我们大多数人都知道这些潜在的问题,互联网上的许多教程都以土耳其语'我'为例" - 人不够,而且你仍然提到它是你答案中的第二句话.此外,你的*答案*没有足够的理由从不使用它 - 你只是提到表现; 表现并不总是最重要的.因此,您目前违反了帮助中心指南; 链接到外部网站是好的,但你没有充分总结内容(土耳其'我'问题).所以不是你的广告平台.

3> Ryan Lundy..:

StringComparer静态类上有许多属性可以为您可能需要的任何类型的区分大小写返回比较器:

StringComparer 属性

例如,你可以打电话

StringComparer.CurrentCultureIgnoreCase.Equals(string1, string2)

要么

StringComparer.CurrentCultureIgnoreCase.Compare(string1, string2)

这比清洁有点string.Equals或者string.Compare是采取重载StringComparison的说法.



4> leppie..:
System.Collections.CaseInsensitiveComparer

要么

System.StringComparer.OrdinalIgnoreCase


我在哪里可以找到更多相关信息.这是否意味着我可以使用==进行不区分大小写的匹配?

5> Erick..:
string.Equals(StringA, StringB, StringComparison.CurrentCultureIgnoreCase);



6> Grzenio..:

要么

if (StringA.Equals(StringB, StringComparison.CurrentCultureIgnoreCase)) {

但是你需要确保StringA不为null.所以可能更好的使用:

string.Equals(StringA , StringB, StringComparison.CurrentCultureIgnoreCase);

正如约翰所说

编辑:纠正了错误

推荐阅读
Gbom2402851125
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有