文字列と整数の間の対応を維持し、文字列値を検索して整数を返す必要があります。次の要件を満たすこの情報を保存するのに最適な構造は何ですか?
速度とメモリ サイズの順に重要です。
車輪を再発明して、独自の並べ替えルーチンを作成したくありません。もちろん、Sort(CompareFunction) への呼び出しは問題ありません。
条件:
整数が連続しているとは限りません。また、0 や 1 のような「開始値」もありません。
データ ペアの数は 100 から 100000 まで変化します
データは最初にすべて読み込まれ、その後の追加/削除/変更はありません
FWIW 文字列は、Outlook (MAPI?) がエントリを識別するために使用する 16 進数のエントリ ID です。例: 00000000FE42AA0A18C71A10E8850B651C2400000300000004000000000000018000000000000001E7FDF4152B0E944BA66DFBF2C6A6416E4F52000487F22
非常に多くのオプション (TStringList (オブジェクトまたは名前と値のペア)、TObjectList、TDictionary など) があるので、最初にアドバイスを求めたほうがよいでしょう...
Delphi TStringList で名前と値のペアをより速く検索するにはどうすればよいですか? を読みました。文字列/文字列ペアの TDictionary を提案し、Delphi 2007 の多次元配列の並べ替えを提案します。これは、文字列/整数の TStringlist オブジェクトを提案しますが、ソートは整数で行われます。