如何进行不区分大小写的字符串比较?

167 浏览
0 Comments

如何进行不区分大小写的字符串比较?

如何使下面的行不区分大小写?

drUser["Enrolled"] = 
      (enrolledUsers.FindIndex(x => x.Username == (string)drUser["Username"]) != -1);

今天早些时候,我得到了一些建议,建议我使用:

x.Username.Equals((string)drUser["Username"], StringComparison.OrdinalIgnoreCase)));

问题是我无法让它们起作用,我尝试了下面的行,这个编译但返回错误的结果,把注册用户返回为未注册的用户,把未注册的用户返回为注册的用户。

drUser["Enrolled"] = 
      (enrolledUsers.FindIndex(x => x.Username.Equals((string)drUser["Username"], 
                                 StringComparison.OrdinalIgnoreCase)));

有人能指出问题吗?

admin 更改状态以发布 2023年5月25日
0
0 Comments

请使用此进行比较:\n

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

0
0 Comments

在.NET框架(4及以上版本)中,这不是最佳实践方式来检查相等性。

String.Compare(x.Username, (string)drUser["Username"], 
                  StringComparison.OrdinalIgnoreCase) == 0

改用以下方法:

String.Equals(x.Username, (string)drUser["Username"], 
                   StringComparison.OrdinalIgnoreCase) 

MSDN建议:

  • 使用String.Equals方法的一个重载来测试两个字符串是否相等。
  • 使用String.Compare和String.CompareTo方法来排序字符串,而不是检查相等性。
0