2012-07-29 5 views
6

Ich versuche, ob ein bestimmte Wörterbuch Schlüssel einen Wert enthältWie Lookup/Check einen Wörterbuch Wert von Schlüssel

zum Beispiel bestätigen

tut dict01 die Phrase „Test“ enthalten in der „Tester“ -Taste

Im Moment ich habe, durch das Wörterbuch iterieren KeyPair mit, was ich will nicht, wie es zu verschwenden Leistung zu tun haben

+0

iterieren möchten, können Sie den Wert über dict01 erhalten [ „Tester“] und dann tu a. Enthält den Wertteil. Gibt es etwas, das mir fehlt? Wenn Sie den spezifischen Schlüssel kennen, holen Sie sich seinen Wert und suchen Sie dann einfach diese Zeichenfolge. – Joe

Antwort

10

können Sie verwenden ContainsKey und string.Contains:

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

Sie können auch verwenden 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

Dies scheint keine gute Methode zu sein, da Sie die beiden (Schlüssel und Wert) nicht miteinander verknüpfen, was, wenn ich nach einem bestimmten Muster in einem Schlüsselwert suchen wollte - aber nur in einem Schlüssel – user1559618

+0

Verwenden ' TryGetValue "wäre effizienter. –

+0

@des Ja danke, das ist es, wonach ich gesucht habe! :) – user1559618

2

können Sie die folgende Methode verwenden, wenn Sie durch das Wörterbuch nicht zweimal

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