System.StringComparer クラス

この記事では、この API のリファレンス ドキュメントへの補足的な解説を提供します。

クラスから StringComparer 派生したオブジェクトは、大文字と小文字の比較規則とカルチャ固有の比較規則の両方を考慮した文字列ベースの比較、等値、およびハッシュ コードの操作を具体化します。 クラスを StringComparer 使用して、ジェネリック コレクション内の要素を並べ替える型固有の比較を作成できます。 、、などのHashtableDictionary<TKey,TValue>SortedListクラスをSortedList<TKey,TValue>並べ替えの目的で使用StringComparerします。

クラスによって StringComparer 表される比較操作は、大文字と小文字を区別するか、大文字と小文字を区別しないように定義され、単語 (カルチャに依存) または序数 (カルチャを区別しない) 比較規則を使用します。 単語と序数の比較規則の詳細については、次を参照してください System.Globalization.CompareOptions

Note

並べ替え重みテーブル最新バージョンである既定の Unicode 照合順序要素テーブルをダウンロードできます。 並べ替え重みテーブルの特定のバージョンは、システムにインストールされている Unicode ライブラリの International Components のバージョンによって異なります。 実装される ICU のバージョンと Unicode のバージョンに関する情報は、ICU のダウンロードに関する記事を参照してください。

Windows 上の .NET Framework の場合、並べ替えおよび比較操作で使用される文字の重みに関する情報を含む一連のテキスト ファイルである並べ替え重みテーブルをダウンロードできます。

実装されたプロパティ

矛盾しているように見えるため、クラスプロパティの StringComparer 使用方法について混乱する可能性があります。 クラスは StringComparer (Visual Basic で)MustInherit 宣言されていますabstract。つまり、そのメンバーは、クラスからStringComparer派生したクラスのオブジェクトでのみ呼び出すことができます。 矛盾は、クラスのStringComparer各プロパティが (Visual Basic で)Shared 宣言されていることstaticです。つまり、最初に派生クラスを作成しなくてもプロパティを呼び出すことができます。

各プロパティは、クラスから派生した匿名クラスのインスタンスを実際に返すので、プロパティをStringComparer直接呼び出StringComparerすことができます。 したがって、各プロパティ値の型は StringComparer、匿名クラス自体の型ではなく、匿名クラスの基底クラスです。 各 StringComparer クラス プロパティは、定義済みの大文字と小文字の StringComparer 比較ルールをサポートするオブジェクトを返します。