2016-04-23 122 views
-1
Public Sub Add(ByVal phone As String, ByVal name As String) 
    MyBase.InnerHashtable.Add(phone, name) 
End Sub 

'--Subroutine to extract the value from a dictionary when the key is passed as input 
Public Function Item(ByVal phone As String) As String 
    Return CStr(MyBase.InnerHashtable.Item(phone)) 
End Function 

示例項:。的關鍵查字典(VB.NET

'--Adding key and values to the dictionary  

myDict.Add("6812036998", "Horton") 
myDict.Add("6812036999", "Olive") 

我需要幫助,在字典中的反向查找鑑於key我應該能夠找到名稱然而,我下面不會工作代碼,這是錯誤的

Public Function lookupValue(ByVal name As String) 
    Return CStr(MyBase.InnerHashtable.Item(name)) 
End Function 
+0

爲什麼你想找到'name' 結束在'Dictionary'中,當已經給出'name'時。或者我想你想在'key'的時候找到'name'? – jamiedanq

回答

1

值不是唯一的,所以我想你將需要使用LINQ得到的,也就是說,第一個值。

Dim myValue As String = myDict.FirstOrDefault(Function(x) x.Value = "Horton").Key; 

編輯:

正如評論雙方艾倫·馬修和我自己,請務必添加System.Linq作爲項目的參考之一,並把Imports System.Linq你寫上面一行的文件中。

+0

它沒有工作。說FirstOrDefault方法不存在。另外我需要生成一個函數。 –

+0

@AlanMathew更新。以前的語法是C#(我的道歉)。爲了使它工作,你應該去你的項目參考,並添加System.Linq,也將輸入System.Linq在您的.vb文件 – Ian

+0

之上的抱歉,但它仍然工作。 –

0

烏爾代碼的標識符是關鍵。但是你需要價值作爲標識符。在yourdictionary 試試這個 對於每一行作爲keyvaluepair(字符串,字符串)如果row.value = desiredstring然後 Yourresult = row.key如果

下一頁