CompareOptions 列挙型

この記事は、この API のリファレンス ドキュメントの補足説明です。

CompareOptions オプションは、大文字と小文字を区別すること、または文字の型を無視する必要があることを示します。

.NET では、単語での並べ替え、文字列での並べ替え、序数での並べ替えの 3 つの異なる並べ替え方法が使用されます。 単語での並べ替えを使用すると、カルチャに依存した文字列比較が実行されます。 英数字以外の特定の文字には特別な重みが割り当てられる場合があります。 たとえば、ハイフン ("-") に割り当てられる重みは非常に小さいため、並べ替えられたリスト内の "coop" と "co-op" の出現位置は隣接します。 文字列での並べ替えは単語での並べ替えと似ていますが、特殊なケースはありません。 このため、英数字以外のすべての記号が、すべての英数字文字より前に配置されます。 序数での並べ替えを使用すると、文字列の各要素の Unicode 値に基づいて文字列が比較されます。 Windows オペレーティング システムの並べ替えおよび比較の操作で使用される文字の重みに関する情報を含むダウンロード可能な一連のテキスト ファイルについては、並べ替え重みテーブルを参照してください。 Linux および macOS の並べ替え重みテーブルについては、既定の Unicode 照合順序要素テーブルを参照してください。 Linux と macOS での並べ替え重みのテーブルの特定のバージョンは、システムにインストールされている International Components for Unicode ライブラリのバージョンによって異なります。 実装される ICU のバージョンと Unicode のバージョンに関する情報は、ICU のダウンロードに関する記事を参照してください。

StringSort 値は、CompareInfo.Compare および CompareInfo.GetSortKey でのみ使用できます。 CompareInfo.IsPrefixCompareInfo.IsSuffixCompareInfo.IndexOf、またはCompareInfo.LastIndexOf で StringSort 値を使用すると、ArgumentException はスローされます。

Note

可能な場合は、CompareOptions 値を受け入れる文字列比較メソッドを使用して、予想される比較の種類を指定する必要があります。 一般的な規則として、ユーザー向けの比較では、言語オプション (現在のカルチャを使用) を使用するのが最も適していますが、セキュリティ比較では Ordinal または OrdinalIgnoreCase を指定する必要があります。

カルチャに依存する並べ替え

Note

Linux および macOS システムでのみ実行されている .NET Core: C および Posix のカルチャでは、想定されている Unicode 照合順序が使用されないため、照合順序の動作で常に大文字と小文字が区別されます。 カルチャに依存する、大文字と小文字を区別しない並べ替え操作を実行する場合は、C または Posix 以外のカルチャを使うことをお勧めします。