Я сделал простенький хеш и не парюсь
{ Simple string-to-integer hashtable }
TSimpleStringHash = object
public
procedure Init(Size: Integer = 256);
procedure Add(const Key: string; Value: Integer);
procedure Clear;
function Modify(const Key: string; Value: Integer): Boolean;
{ return -1 if no value for key, suitable for list index }
function ValueOf(const Key: string): Integer;
function FindValue(const Key: string; out Value: Integer): Boolean;
end;
https://github.com/serbod/NovaLib/blob/master/SimpleObj.pas