不区分大小写'包含(字符串)'

不区分大小写'包含(字符串)'

有没有办法让以下返回true?

string title = "ASTRINGTOTEST";title.Contains("string");

似乎没有一个过载允许我设置区分大小写。目前我大概他们两个,但这只是愚蠢(我指的是上下套管带来的i18n问题)。

更新
这个问题是古老的,从那时起我就意识到,如果你想完全研究它,我会要求一个简单的答案来解决一个非常庞大和困难的话题。
对于大多数情况,在单语言的英语代码库中,这个答案就足够了。我怀疑是因为大多数人来到这个类别这是最受欢迎的答案。然而,
这个答案提出了一个固有的问题,即我们无法比较文本不区分大小写,直到我们知道两个文本是相同的文化并且我们知道文化是什么。这可能是一个不太受欢迎的答案,但我认为它更正确,这就是为什么我这样标记它。


FFIVE
浏览 1151回答 4
4回答

慕森卡

您可以使用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);
打开App,查看更多内容
随时随地看视频慕课网APP