不區(qū)分大小寫'包含(字符串)'有沒有辦法讓以下返回true?string title = "ASTRINGTOTEST";title.Contains("string");似乎沒有一個過載允許我設(shè)置區(qū)分大小寫。目前我大概他們兩個,但這只是愚蠢(我指的是上下套管帶來的i18n問題)。更新這個問題是古老的,從那時起我就意識到,如果你想完全研究它,我會要求一個簡單的答案來解決一個非常龐大和困難的話題。對于大多數(shù)情況,在單語言的英語代碼庫中,這個答案就足夠了。我懷疑是因為大多數(shù)人來到這個類別這是最受歡迎的答案。然而,這個答案提出了一個固有的問題,即我們無法比較文本不區(qū)分大小寫,直到我們知道兩個文本是相同的文化并且我們知道文化是什么。這可能是一個不太受歡迎的答案,但我認為它更正確,這就是為什么我這樣標記它。
4 回答

慕森卡
TA貢獻1806條經(jīng)驗 獲得超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 關(guān)注
- 1245 瀏覽
添加回答
舉報
0/150
提交
取消