この記事では、この API のリファレンス ドキュメントに補足的な解説を提供します。
StringComparer クラスから派生したオブジェクトは、大文字と小文字の比較規則とカルチャ固有の比較規則の両方を考慮した文字列ベースの比較、等価性、およびハッシュ コードの操作を具体化します。 StringComparer クラスを使用して、ジェネリック コレクション内の要素を並べ替える型固有の比較を作成できます。 Hashtable、Dictionary<TKey,TValue>、SortedList、SortedList<TKey,TValue>などのクラスは、並べ替えの目的で StringComparer クラスを使用します。
StringComparer クラスによって表される比較操作は、大文字と小文字を区別するか、大文字と小文字を区別しないように定義され、単語 (カルチャに依存) または序数 (カルチャを区別しない) 比較規則を使用します。 単語と序数の比較規則の詳細については、 System.Globalization.CompareOptionsを参照してください。
注
並べ替え重みテーブルの最新バージョンである 既定の Unicode 照合順序要素テーブルをダウンロードできます。 並べ替え重みテーブルの特定のバージョンは、システムにインストールされている Unicode ライブラリの International Components のバージョンによって異なります。 ICU のバージョンと実装されている Unicode バージョンについては、「 ICU のダウンロード」を参照してください。
Windows 上の .NET Framework の場合、 並べ替えおよび比較操作で使用される文字の重みに関する情報を含む一連のテキスト ファイルである並べ替え重みテーブルをダウンロードできます。
実装されたプロパティ
矛盾しているように見えるため、 StringComparer クラスプロパティの使用方法について混乱する可能性があります。
StringComparer クラスはabstract
(Visual Basic ではMustInherit
) 宣言されています。つまり、そのメンバーは、StringComparer クラスから派生したクラスのオブジェクトでのみ呼び出すことができます。 矛盾は、StringComparer クラスの各プロパティが (Visual Basic でShared
) static
宣言されていることです。つまり、最初に派生クラスを作成しなくても、このプロパティを呼び出すことができます。
各プロパティは実際にStringComparer クラスから派生した匿名クラスのインスタンスを返すので、StringComparer プロパティを直接呼び出すことができます。 したがって、各プロパティ値の型は、匿名クラス自体の型ではなく、匿名クラスの基底クラスである StringComparerです。 各 StringComparer クラス プロパティは、定義済みの大文字と小文字の比較規則をサポートする StringComparer オブジェクトを返します。
.NET