2012-07-29 24 views
6

Estoy tratando de confirmar si una clave de diccionario específica contiene un valorCómo buscar/verificar un valor de diccionario por clave

p.

hace dict01 contienen la "prueba" frase en el "probador" clave

En el momento que estoy teniendo para recorrer el diccionario utilizando el par de claves, que yo no quiero tener que hacer lo que perder rendimiento

+0

, usted puede obtener el valor medio de dict01 [ "probador"] y luego hacer a. Contiene en la parte del valor. ¿Se me escapa algo? Si conoce la clave específica, obtenga su valor y luego simplemente busque esa cadena. – Joe

Respuesta

10

puede utilizar ContainsKey y string.Contains:

var key = "tester"; 
var val = "testing"; 
if(myDictionary.ContainsKey(key) && myDictionary[key].Contains(val)) 
{ 
    // "tester" key exists and contains "testing" value 
} 

también puede utilizar TryGetValue:

var key = "tester"; 
var val = "testing"; 
var dicVal = string.Empty; 
if(myDictionary.TryGetValue(key, out dicVal) && dicVal.contains(val)) 
{ 
    // "tester" key exists and contains "testing" value 
} 
+0

Esto no parece una buena manera de hacerlo, ya que no se vinculan los dos (clave y valor) juntos, ¿qué pasaría si quisiera buscar un patrón específico en un valor clave? Pero solo en una clave – user1559618

+0

Usando ' TryGetValue' sería más eficiente. –

+0

@des ¡Sí, gracias, eso es lo que estaba buscando! :) – user1559618

2

Usted puede utilizar el siguiente método si no desea recorrer dos veces el diccionario

string value; 
var result = dict01.TryGetValue("tester", out value) && value.Contains("testing"); 
Cuestiones relacionadas