不区分大小写'包含(字符串)'有没有办法让以下返回true?string title = "ASTRINGTOTEST";title.Contains("string");似乎没有一个过载允许我设置区分大小写。目前我大概他们两个,但这只是愚蠢(我指的是上下套管带来的i18n问题)。更新这个问题是古老的,从那时起我就意识到,如果你想完全研究它,我会要求一个简单的答案来解决一个非常庞大和困难的话题。对于大多数情况,在单语言的英语代码库中,这个答案就足够了。我怀疑是因为大多数人来到这个类别这是最受欢迎的答案。然而,这个答案提出了一个固有的问题,即我们无法比较文本不区分大小写,直到我们知道两个文本是相同的文化并且我们知道文化是什么。这可能是一个不太受欢迎的答案,但我认为它更正确,这就是为什么我这样标记它。
4 回答
慕森卡
TA贡献1806条经验 获得超8个赞
您可以使用String.IndexOf方法并将其StringComparison.OrdinalIgnoreCase
作为要使用的搜索类型传递:
string title = "STRING";bool contains = title.IndexOf("string", StringComparison.OrdinalIgnoreCase) >= 0;
更好的是为字符串定义一个新的扩展方法:
public static class StringExtensions{ public static bool Contains(this string source, string toCheck, StringComparison comp) { return source?.IndexOf(toCheck, comp) >= 0; }}
请注意,对于旧版本,C#6.0(VS 2015)可以使用空传播 ?.
if (source == null) return false;return source.IndexOf(toCheck, comp) >= 0;
用法:
string title = "STRING";bool contains = title.Contains("string", StringComparison.OrdinalIgnoreCase);
- 4 回答
- 0 关注
- 1194 浏览
添加回答
举报
0/150
提交
取消