2011-10-20 42 views
5

tengo tabla hash con la clave y los valores y en mi código Soy iteración tabla hash a través de valores, como a continuación:cómo obtener la clave de valor en la tabla hash

foreach (Object clientObject in ClientList.Values) 
{ 
    // code to perform operation based on value 
    ...... 
} 

Dónde está ClientList tabla hash. Ahora quiero obtener la clave de valor perticualar de hashtable en mi código. hay alguna manera de lograr eso?

Gracias

Respuesta

5

Tienes que recorrer la tabla de esta manera:

 Hashtable clientList = new Hashtable(); 

     foreach (DictionaryEntry dictionaryEntry in clientList) 
     { 
      // work with value. 
      Debug.Print(dictionaryEntry.Value.ToString()); 

      // work with key. 
      Debug.Print(dictionaryEntry.Key.ToString()); 
     } 
+0

Gracias, creo que su forma de iteración es mejor para resolver mi problema –

1

No es posible obtener la clave usando el valor.

Uno de los motivos es que la clave es única y el valor no es exclusivo en la tabla Hash.

Puede usar la forma @Fischermaen para leer el valor.

3

Si desea que la lista de keys que tienen un cierto valor, usando LINQ (.NET> = 3,5)

object searchedValue = something; 

IEnumerable<object> keys = ClientList.Cast<DictionaryEntry>().Where(p => ClientList.Values == searchedValue).Select(p => p.Key); 

Esto probablemente no es lo que quería , pero es lo que pedirá .

(el código significa: tome todos los elementos de ClientList (cada elemento es una "tupla" de clave y valor) y busque uno (s) que tenga el valor igual al valor buscado. Tome las claves de aquellos elementos

+0

Gracias. Podemos obtener la clave utilizando linq como su código, pero mejor repito hashtable como lo menciona Fischermaen. –

Cuestiones relacionadas