按键查找字典(VB.NET

时间:2016-04-23 04:15:56

标签: .net vb.net visual-studio

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

样品条目:

'--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

2 个答案:

答案 0 :(得分:1)

值不是唯一的,所以我猜您需要使用LINQ来获取第一个值:

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

修改

正如Alan Mathew和我自己所评论的那样,请确保将System.Linq添加为您的项目参考之一,并将Imports System.Linq放在您编写上述行的文件中。

答案 1 :(得分:0)

Ur代码的标识符是关键。但是你需要价值作为标识符。试试这个 对于每一行,作为yourdictionary中的keyvaluepair(字符串,字符串) 如果row.value = desiredstring则 Yourresult = row.key 如果

结束

下一步