如何让下面的行不区分大小写?
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)));
谁能指出问题所在?
最佳答案
这不是 .NET Framework (4 & +) 中检查相等性的最佳实践
String.Compare(x.Username, (string)drUser["Username"],
StringComparison.OrdinalIgnoreCase) == 0
改用下面的
String.Equals(x.Username, (string)drUser["Username"],
StringComparison.OrdinalIgnoreCase)
- Use an overload of the String.Equals method to test whether two strings are equal.
- Use the String.Compare and String.CompareTo methods to sort strings, not to check for equality.
关于c# - 如何进行不区分大小写的字符串比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3121957/