解決済み:
次のコードを使用しました。
var compareinfo = CultureInfo.CurrentCulture.CompareInfo;
var index = compareinfo.IndexOf(strA, strB, CompareOptions.IgnoreNonSpace | CompareOptions.IgnoreCase);
return index > -1;
重複の可能性:
文字列比較でアクセント付き文字を無視する
ユーザーが関心のある場所を検索するために使用するパブリック キオスク アプリケーションがあります。カフェという言葉を使った店名があるとします。キオスクでは、オンスクリーン キーボードから英語のアルファベットのみを入力できます。問題は、Cafe (アクセント付きの é なし) と入力すると、ユーザーが文字 é を入力できなかったため、検索が無効になることです。アプリケーションで、通常の e をアクセント付きのすべての e に対して検索可能にし、他のすべてのそれぞれの文字に対しても同様に検索できるようにしたいと考えています。どうやってやるの?
編集: 店名は「Bruce Café」で、「cafe」を検索すると、検索結果に表示されるはずです。
使用して
string.Compare("Bruce Café", "cafe", CultureInfo.CurrentCulture, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace)
-1 を返します
と
string.Compare("Ben-Gurion University (BGU)", "cafe", CultureInfo.CurrentCulture, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace)
-1も返します
なぜそうなのかはわかりません...