2016-04-23 7 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' '検索したい場合は 終了すでに 'name'が与えられている場合は' Dictionary'に入れます。あるいは、 '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を追加し、.vbファイルの上にSystem.Linqをインポートしてください。 – Ian

+0

残念ですが、それでもまだ動作します。 –

0

Urコードの識別子はキーです。しかし、あなたは識別子として価値が必要です。 yourdictionary に(文字列、文字列の)keyvaluepairとして行ごとにこの をしようとした場合row.value = desiredstringその後、 Yourresult = row.key

次は