11

.NET 字符串函数是否IndexOf("blah")区分大小写?

据我记得他们不是,但由于某种原因,我在我的应用程序中看到了错误,其中查询字符串中的文本是驼峰式大小写(如 UserID),我正在测试IndexOf("userid").

4

4 回答 4

21

是的,字符串函数默认区分大小写。它们通常具有重载,可让您指示所需的字符串比较类型。IndexOf 也是如此。要以不区分大小写的方式获取字符串的索引,您可以执行以下操作:

string blaBlah = "blaBlah";
int idx = blaBlah.IndexOf("blah", StringComparison.OrdinalIgnoreCase);
于 2009-09-01T20:23:28.527 回答
11

我想在现有答案中添加一件事(因为您最初询问的是 ASP.NET):

一些名称/值集合,例如 Request.QueryString 和可能还有 Request.Form 不区分大小写。例如,如果我使用以下 URL 导航到 ASPX 页面

http://server/mypage.aspx?user=admin

那么以下两行都将返回“admin”:

var user1 = Request.QueryString["user"];
var user2 = Request.QueryString["USER"];
于 2009-09-01T21:01:49.540 回答
1

.NET 字符串比较确实区分大小写。在比较它们之前,您可以使用 ToUpper() 之类的东西来规范化它们。

于 2009-09-01T20:24:41.363 回答
0

默认情况下,它们区分大小写,但包括 IndexOf 在内的大多数(如果不是全部)具有采用 StringComparison 参数的重载。例如,如果你通过

StringComparison.InvariantCultureIgnoreCase 

作为 IndexOf 的 StringComparison 参数,它将(顾名思义)忽略大小写差异

于 2009-09-01T20:27:56.643 回答