Как получить ключ от 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. Но перечислитель работает просто отлично.

Другие вопросы по тегам