Как получить ключ от TDictionary?
У меня есть TDictionary<TKeyClass, TValueClass>
,
Я хочу сделать что-то вроде
for i := 0 to MyDictionary.Count -1 do
ShowMessage(MyDictionary.Keys[i].AStringProperty)
Я больше не могу получить доступ к ключам, я могу просто использовать их, если точно знаю их.
Является ли единственной альтернативой создать TDictionary<TValueClass, TKeyValue>
? Так я могу зациклить ключи?
Workaroud я нашел, чтобы создать TList<TKeyClass>
но это то, что мне не нравится.
1 ответ
Решение
Используйте перечислитель.
for Key in MyDictionary.Keys do
ShowMessage(Key.AStringProperty);
Поскольку TDictionary является хеш-таблицей, вы не можете получить к ней доступ с помощью целочисленной индексации, такой как массив или TList. Но перечислитель работает просто отлично.