Ich habe es zuerst mit einer StringList und .Names bzw .Values gemacht. Es funktionierte und war leicht zu implementieren, aber bei grossen Datenmengen ist es sehr langsam.
Dann versuch doch mal eine StringList, wo du den Integer als TObject gecastet in dem Objects-Property speicherst. Wenn du die StringLIst dann auf Sorted := true stellst, sollte es dann schneller gehen. Also etwa so:
Delphi-Quellcode:
list := TStringList.Create;
list.Sorted := true;
list.AddObject('Meyer', TObject(1));
list.AddObject('Mueller', TObject(2743));
list.AddObject('Schmied', TObject(65));
...
idx := list.IndexOf('Mueller');
val := Integer(list.Objects[idx]);