2012-07-29 87 views
6

我在嘗試確認某個特定字典鍵是否包含值如何通過鍵查找/檢查字典值

例如,

確實dict01包含在「測試」短語「試驗」鍵

在我有過使用密鑰對,字典迭代的那一刻,我不希望有這樣做,因爲它的性能浪費

+0

您可以通過dict01獲得價值[「測試」],然後做一個包含價值部分。有什麼我失蹤?如果你知道特定的關鍵字,可以獲取它的值,然後簡單地搜索該字符串。 – Joe 2012-07-29 12:45:22

回答

10

您可以使用ContainsKeystring.Contains

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

您還可以使用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

這似乎不是一個很好的方法,因爲你沒有將兩個(鍵和值)鏈接在一起,如果我想要在關鍵值中搜索特定模式 - 但只能在一個鍵中使用,會怎樣? – user1559618 2012-07-29 12:43:32

+0

使用' TryGetValue'會更有效率。 – 2012-07-29 12:47:18

+0

@des是的,謝謝你,那就是我的追求! :) – user1559618 2012-07-29 12:48:22

2

您可以用下面的方法,如果你不想通過字典來迭代兩次

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