2010-09-21 3 views
7

У меня есть TDictionary<TKeyClass, TValueClass>.Как получить ключ от TDictionary?

Я хочу сделать что-то вроде

for i := 0 to MyDictionary.Count -1 do 
    ShowMessage(MyDictionary.Keys[i].AStringProperty) 

Я не могу доступ к ключам больше я могу просто использовать их, если я точно знаю.

Это единственная альтернатива, создающая TDictionary<TValueClass, TKeyValue>? Значит, я могу запереть ключи?

Рабочий стол, который я нашел, - это создать TList<TKeyClass>, но это то, что мне не нравится.

ответ

14

Используйте перечислитель.

for Key in MyDictionary.Keys do 
    ShowMessage(Key.AStringProperty); 

Поскольку TDictionary является хеш-таблицей, вы не можете получить к нему доступ с целым индексированием, как массив или TList. Но перечислитель работает отлично.

Смежные вопросы