web-dev-qa-db-ja.com

StringComparison列挙のオプション

StringComparison Enumeration のオプションに混乱しています。大文字と小文字を区別せずに2つの文字列を比較したいだけです。誰かが用語現在の文化不変の文化およびordinalはどういう意味ですか?ほとんどのユースケースに共通するオプションはありますか?もしそうなら、どのような状況で他のオプションが必要になりますか?

参考までに、StringComparison列挙型のオプションは次のとおりです。

  • CurrentCulture
  • CurrentCultureIgnoreCase
  • InvariantCulture
  • InvariantCultureIgnoreCase
  • 序数
  • OrdinalIgnoreCase
37
Dan Stevens

2つの文字列を比較して等しいかどうかを比較する場合、カルチャ設定はあまり違いはありません(たとえば、ドット付きとドットなしのIを付けたトルコ語に影響します)。

文字列のリストを並べ替える場合、大きな違いがあります。多くの場合、文化が異なれば、順序も異なります。

CurrentCultureは、erm、現在のカルチャ(つまり、現在のロケール)に従って文字列を並べ替えます。したがって、これはソフトウェアが実行されている場所によって異なります。

InvariantCultureは、基本的に米国英語の設定です。ソフトウェアがどこで実行されても同じであるため、不変です。

序数の比較は、Unicodeコードポイントの値に基づいています。これは通常、同等性を比較するための最良の選択ですが、ユーザーに表示する文字列のリストを並べ替える場合は適切な選択ではありません。

43
arx

http://blogs.msdn.com/b/abhinaba/archive/2005/10/28/486173.aspx および http://msdn.Microsoft.com/en- us/library/ms973919 。 Ordinal *メソッドを使用することをお勧めします。

3
Shan Plourde