首页 >后端开发 >C++ >如何在 C# 中正确执行不区分大小写的字符串比较?

如何在 C# 中正确执行不区分大小写的字符串比较?

Patricia Arquette
Patricia Arquette原创
2025-01-19 12:46:09150浏览

How to Perform Case-Insensitive String Comparisons Correctly in C#?

C#中不区分大小写的字符串比较

在C#中进行字符串比较时,通常需要忽略大小写。虽然最初可能会考虑使用带有StringComparison.OrdinalIgnoreCaseEquals方法,但这可能会导致意想不到的结果。

以下代码示例中:

<code class="language-csharp">drUser["Enrolled"] = 
      (enrolledUsers.FindIndex(x => x.Username.Equals((string)drUser["Username"], 
                                 StringComparison.OrdinalIgnoreCase)));</code>

问题在于将Equals方法与表达式lambda一起使用。表达式lambda需要一个布尔表达式,但Equals方法返回void。

在.NET Framework 4及更高版本中,推荐使用String.Compare方法结合StringComparison.OrdinalIgnoreCase进行不区分大小写的字符串比较,如下所示:

<code class="language-csharp">String.Compare(x.Username, (string)drUser["Username"], 
                  StringComparison.OrdinalIgnoreCase) == 0</code>

或者,为了使代码更易读且更不易出错,您可以使用String.Equals方法,如下所示:

<code class="language-csharp">String.Equals(x.Username, (string)drUser["Username"], 
                   StringComparison.OrdinalIgnoreCase) </code>

这些方法确保以不区分大小写的方式执行字符串比较,从而提供准确的结果。

以上是如何在 C# 中正确执行不区分大小写的字符串比较?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn