VB.NET Dictionary 検索して取得する方法

Dictionary内のデータを検索、取得する方法です。

指定されたキーがあるか検索する方法

Dim dic As New Dictionary(Of Integer, String)
dic.Add(1, "りんご")
dic.Add(2, "バナナ")
dic.Add(3, "オレンジ")

If dic.ContainsKey(2) = True Then
    Console.WriteLine("キー:2は存在します")
End If
キー:2は存在します

指定されたキーがあるか調べる方法は、
ContainsKeyメソッドを使います。

引数に指定したキーが存在するか調べ、
あるならTrue、なければFalseが返ります。

指定された値があるか検索する方法

Dim dic As New Dictionary(Of Integer, String)
dic.Add(1, "りんご")
dic.Add(2, "バナナ")
dic.Add(3, "オレンジ")

If dic.ContainsValue("りんご") = True Then
    Console.WriteLine("値:""りんご""は存在します")
End If
値:"りんご"は存在します

指定された値があるか調べる方法は、
ContainsValueメソッドを使います。

引数に指定した値が存在するか調べ、
あるならTrue、なければFalseが返ります。

スポンサーリンク

指定されたキーがあるか検索し、値を取得する方法1

Dim dic As New Dictionary(Of Integer, String)
dic.Add(1, "りんご")
dic.Add(2, "バナナ")
dic.Add(3, "オレンジ")

If dic.ContainsKey(2) = True Then
    Console.WriteLine("キー:2の値は{0}です", dic.Item(2))
End If
キー:2の値はバナナです

ContainsKeyメソッドで指定されたキーがあった場合に、
Itemプロパティを使って「キーに対応する値」を取得する例です。

指定されたキーがあるか検索し、値を取得する方法2

Dim dic As New Dictionary(Of Integer, String)
dic.Add(1, "りんご")
dic.Add(2, "バナナ")
dic.Add(3, "オレンジ")

Dim str As String

If (dic.TryGetValue(3, str)) = True Then
    Console.WriteLine("キー:3の値は{0}です", str)
Else
    Console.WriteLine("キー:3は見つかりませんでした")
End If
キー:3の値はオレンジです

TryGetValueメソッドを使用した例です。

第1引数に指定されたキーがあるか調べ、
存在するなら、第2引数に指定したString型変数に
「キーに対応する値」が格納されます。

指定されたキーが存在しないなら、
第2引数に指定したString型変数がNothingになります。

プログラム実行速度的には?

値を検索、取得する場合、
ContainsKey、ContainsValueメソッドを使う方法と
TryGetValueメソッドを使う方法がありますが、

指定されたキーの有り、無し、
指定されたキーの長さ
Dictionary内のデータ量
Dictionary内のソート有無

などによって、速度が変わります。

業務的にプログラムの実行速度が気になるようでしたら、
実際に両方使ってみて、速い方を採用して頂ければと思います。


これでDictionary内のデータを
検索、取得する事ができるようになりました。