Jam*_*mie 11 c# string comparison case-insensitive
我正在读一个用户名,然后检查是否存在于另一个数据库表中,问题是虽然用户名是相同的,但情况可能不同,并阻止它找到匹配示例jsmith和JSmith或JSMITH.
我怎样才能解决这个问题?我应该在写入第一个数据库时降低大小写,还是在我比较这两个数据库时可以改变下面的代码?
drUser["Enrolled"] =
(enrolledUsers.FindIndex(x => x.Username == (string)drUser["Username"]) != -1);
Run Code Online (Sandbox Code Playgroud)
更新:
仍在努力解决这个问题,下面的代码编译但没有给出正确的结果,在查看注册用户时,我看到那些未注册的用户,在查看未注册的用户时,我看到1已注册,但他们的用户名案例是在每个数据库中都相同.我是否正确格式化了下面的代码?
drUser["Enrolled"] = (enrolledUsers.FindIndex(x => x.Username.Equals((string)drUser["Username"], StringComparison.OrdinalIgnoreCase)));
Run Code Online (Sandbox Code Playgroud)
谢谢杰米
SLa*_*aks 21
您需要对Equals方法进行校准,该方法采用StringComparison参数.
例如:
x.Username.Equals((string)drUser["Username"], StringComparison.OrdinalIgnoreCase)
Run Code Online (Sandbox Code Playgroud)
如果x.Username可以null,你应该调用静态Equals方法:
String.Equals(x.Username, (string)drUser["Username"], StringComparison.OrdinalIgnoreCase)
Run Code Online (Sandbox Code Playgroud)
否则,x.Username.Equals可以扔一个NullReferenceException.
| 归档时间: |
|
| 查看次数: |
1238 次 |
| 最近记录: |