如何进行不区分大小写的字符串比较?
如何进行不区分大小写的字符串比较?
如何使下面的行不区分大小写?
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日
在.NET框架(4及以上版本)中,这不是最佳实践方式来检查相等性。
String.Compare(x.Username, (string)drUser["Username"], StringComparison.OrdinalIgnoreCase) == 0
改用以下方法:
String.Equals(x.Username, (string)drUser["Username"], StringComparison.OrdinalIgnoreCase)
- 使用String.Equals方法的一个重载来测试两个字符串是否相等。
- 使用String.Compare和String.CompareTo方法来排序字符串,而不是检查相等性。