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

慕森卡
TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超8個(gè)贊
您可以使用String.IndexOf方法并將其StringComparison.OrdinalIgnoreCase
作為要使用的搜索類型傳遞:
string title = "STRING";bool contains = title.IndexOf("string", StringComparison.OrdinalIgnoreCase) >= 0;
更好的是為字符串定義一個(gè)新的擴(kuò)展方法:
public static class StringExtensions{ public static bool Contains(this string source, string toCheck, StringComparison comp) { return source?.IndexOf(toCheck, comp) >= 0; }}
請(qǐng)注意,對(duì)于舊版本,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)注
- 1236 瀏覽
添加回答
舉報(bào)
0/150
提交
取消