1

米国英語以外の環境でも使用される可能性のある WinForms アプリケーションでは、String.Equals(strA, strB) メソッドがあり、大文字と小文字を区別しない比較を行う必要があったため失敗していますが、デフォルトでは比較は大文字と小文字が区別されます-センシティブ。これを修正するには、何が良いと思いますか?

  • CurrentCultureIgnoreCase ?
  • StringComparision.Ordinal ?
  • StringComparision.OrdinalIgnoreCase ? *何か良い提案はありますか?

ありがとう。

4

1 に答える 1

0

を使用しCurrentCultureIgnoreCaseます。比較では、カルチャで使用されるアルファベット順は考慮されOrdinalません。

しかしもちろん、それはあなたが達成しようとしていることに依存します。ユーザーの文化を無視する何かをしたい場合は、確かに他の可能性がありますInvariantCulture

追加:ソート/順序付けではなく、「等しい」と「等しくない」のチェックのみを行っている場合でも、 と の間に違いがある場合がOrdinalIgnoreCaseありCurrentCultureIgnoreCaseます。たとえば、序数に基づく比較では、"istanbul""Istanbul"は大文字と小文字まで等しいです。ただし、トルコのカルチャでは、 の大文字バージョンが butで'i'はないため、これらは同等ではない可能性があります。したがって、都市は になります。'I''İ'"İstanbul"

于 2012-11-05T21:46:32.950 に答える