インメモリ データベースを使用することも 1 つのオプションですが、実際には非常に単純な問題に対しては、非常に負荷の高いソリューションのように思えます。考慮すべき別のオプションは、さまざまなファイルの詳細でTList<TFileDetails>
where TFileDetails
isを使用することです。record
並べ替えに関しては、最も効率的な方法は、並べ替えたい列ごとにインデックスを維持することです。したがって、インデックスは、特定の列で並べ替えられたときのレコードの順序を表す整数の単純な配列です。したがって、 のインデックス配列は[1, 2, 0]
、最初のアイテムがインデックス 1、2 番目がインデックス2
、3 番目がインデックスであることを意味します0
。これを行うと、必要な場合にのみ各列でソートする必要があり、一度だけ実行する必要があることを意味します。
とはいえ、多数のファイルがある場合は、個別のインデックス配列を維持するだけで済みます。必要なときにオンデマンドで並べ替えるだけで、パフォーマンスが許容できる場合があります。それがエクスプローラーの機能だと思います。
パフォーマンスの制約がわからないため、どのオプションが問題に適しているかについてアドバイスすることはできません。ただし、要約すると、複雑さを増すための主なオプションは次のとおりです。
- オンデマンドでリストを使用
TList<TFileDetails>
して再ソートします。
TList<TFileDetails>
必要に応じてインデックス配列を使用、構築、保持します。
- インメモリ データベースを使用します。