C#中不区分大小写的字符串比较
在C#中进行字符串比较时,通常需要忽略大小写。虽然最初可能会考虑使用带有StringComparison.OrdinalIgnoreCase
的Equals
方法,但这可能会导致意想不到的结果。
以下代码示例中:
<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中文网其他相关文章!