アクセントを無視するC#におけるケースと非感受性の文字列比較
C#文字列の比較では、多くの場合、ケースマークとアクセントマークの両方を無視する必要があります。 アクセントされた文字を適切に処理しないでください。 これには、正確な比較のためのカスタムソリューションが必要です ディークリティクスの削除(アクセント)
StringComparison.InvariantCultureIgnoreCase
次の関数は、文字列から発音科学を効率的に除去します:StringComparison.OrdinalIgnoreCase
この関数:
正規化:
入力文字列を<code class="language-csharp">static string RemoveAccents(string text) { string normalized = text.Normalize(NormalizationForm.FormD); StringBuilder sb = new StringBuilder(); foreach (char c in normalized) { if (CharUnicodeInfo.GetUnicodeCategory(c) != UnicodeCategory.NonSpacingMark) { sb.Append(c); } } return sb.ToString().Normalize(NormalizationForm.FormC); }</code>に変換し、ベース文字とダイアティックスを分離します。 フィルター:
NormalizationForm.FormD
を適用します。NormalizationForm.FormC
を使用してください:以上がアクセントされた文字を無視しながら、C#でCase-ofsensensitive String比較を実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。