2010-09-21 15 views
7

Tengo un TDictionary<TKeyClass, TValueClass>.Cómo obtener la clave de un TDictionary?

que quiero lograr algo así como

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

no puedo acceder a las claves ya que sólo puede usarlos si sé exactamente ellos.

es la única alternativa a crear una TDictionary<TValueClass, TKeyValue>? Entonces, ¿puedo recorrer las teclas?

El workaroud he encontrado es crear un TList<TKeyClass> pero esto es algo que no me gusta.

Respuesta

14

Utilice un enumerador.

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

Desde TDictionary es una tabla hash, no se puede acceder a él con la indexación de números enteros como una matriz o TList. Pero un enumerador funciona bien.

Cuestiones relacionadas