Delphi/Pascal では、TStringList をアルファベット順にソートしたいと考えています。しかし、この目的のためには、次の 2 つの方法しか使用できません。
Move:文字列をあるインデックス位置から別のインデックス位置に移動し、必要に応じて他の文字列をシフトします。
Exchange:リスト内の 2 つの文字列を、インデックス位置で識別して交換します。
どうすればこれを行うことができますか? 私はループですべてのアイテムを調べて、次のようなものにするという考えを持っていました:
- lastFirstLetter := コピー(CurrentItem, 1, 1)
- 次の項目に移動
- currentFirstLetter := Copy(CurrentItem, 1, 1)
- if ord(currentFirstLetter) < ord(lastFirstLetter) then exchange(lastItem, currentItem)
これら 2 つの方法で StringList をソートする最速の方法は何でしょうか? ちなみに、sort メソッドと sorted プロパティは使用できません。