ソート順について
コレクションをソートする場合は、以下のコンセプトを理解する必要があります。
- 数値フィールドのように見えるフィールド([勘定科目]など)は、実際は文字ベースのフィールドで、テキスト文字のソート順を使用します。
- 文字ベースのフィールドでは、テキスト文字によるソートが使用されます。たとえば勘定科目番号を使用して昇順にソートしようとすると、勘定科目は次のようにソートされます。
(空白フィールド)
#222
222
2220
@201
XL-64
xl-64
テキスト文字(降)順で、以下のルールが存在します。
- 文字列は、一般に左から右にソートされます。つまり、最初の文字(最も左)が評価され、次に 2 番目、3 番目と評価されていきます。
- 空白のフィールドは、他のどの文字よりも前に並べられます。したがって、全ての空白フィールドが常に最初に表示されます。
- 特殊文字は、数値の前の場合も、数値と文字の間の場合も、文字の後の場合もあります。従って [#222] は 222 の[前]ですが、[@201] は 222 の[後]になります。
- 数値は、大きさとは無関係に、正確な数値の順に表示されます。
- 数値は、アルファベット文字よりも前に表示されます。
- 大文字は小文字よりも前に表示されます。従って [XL-64] は [xl-64] の前に並べられます。
- 通常、Unicode 文字列は「単語ソート」テクニックを使用して比較されます。このテクニックでは、英数字以外の全ての文字と句読点が英数字の前に並べられます。ただし、ハイフンとアポストロフィは例外です。[coop] や [co-op] などの単語がソート後のリストで続けて表示されるように、ハイフンとアポストロフィは、英数字以外のその他の記号とは違う扱いとなっています。
関連トピック