問題

有沒有辦法讓以下返回真實?

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

似乎沒有超載允許我設定案例敏感性.目前我兩者都是UPPERCASE,但這只是愚蠢的(我指的是 i18n 出現上下套管的問題).

更新
2001年12月31日終了的兩年期收入和支出及準備金和基金結餘變動報表 這個問題是古老的,從那以後我意識到,如果你關心全面的研究,我就要求一個非常廣泛和困難的主題的簡單答案。
2001年12月31日終了的兩年期收入和支出及準備金和基金結餘變動報表 對於大多數情況,在單語中,英文程式碼基於這個答案就足夠了.我懷疑是因為大多數來到這裡的人都屬於這個類別,這是最受歡迎的答案.
2001年12月31日終了的兩年期收入和支出及準備金和基金結餘變動報表 This answer但是提出了我們無法比較文字不敏感的內在問題,直到我們知道兩個文字都是相同的文化,我們知道文化是什麼.這可能是一個不太受歡迎的答案,但我認為它更正確,這就是為什麼我將它標記為這樣.

  最佳答案

要測試字串paragraph是否包含字串word(謝謝@QuarterMeister)

 culture.CompareInfo.IndexOf(paragraph, word, CompareOptions.IgnoreCase) >= 0
 

其中culture CultureInfo 描述文字所用語言的例項.

這個解決方案對於case-inmission的定義是透明的,它依賴於語言.例如,英語語言為第九個字母的上下兩個案例版本使用字元Ii,而土耳其語言使用這些字元為其29個字母long字母的第11和第12個字母.土耳其語的上個案例版本`i'是不熟悉的字元’sumple’.

因此字串tinTIN在英文中是相同的單詞,但土耳其語中的單詞不同.據我所知,一個意味著’精神’,另一個意味著onomatopoia單詞. (土耳其語,如果我錯了,請糾正我,或者建議一個更好的例子)

總而言之,如果你知道文字中的語言,你只能回答問題’這兩個字串是一樣的,但在不同的情況下’.如果你不知道,你必須進行一個punt.鑑於英國在軟體上的霸權,你可能應該使用 CultureInfo.InvariantCulture ,因為它會以熟悉的方式出錯.

  相同標籤的其他問題

c#stringcontainscase-insensitive