VB.NETの辞書(Dictionary)からキー・値を取得する方法についてまとめています。
キーから値を取得する以外にも、辞書から下記のデータを取得する方法について書いています。
・すべてのキーと値
・すべてのキー
・すべての値
・辞書の要素数
辞書で値を取得する方法
辞書では、キーを指定することで、キーに対応した値を取得できます。
以下のコードは、キーを使用して値を取得する方法です。
Dim fruits As New Dictionary(Of String, String)
fruits.Add("red", "apple")
fruits.Add("blue", "grape")
fruits.Add("yellow", "banana")
Dim fruit As String = fruits("blue")
Console.WriteLine(fruit) ' grape
最初にfruits
変数に対して、Dictionary
キーワードを使って、辞書型の変数を作りました。
丸括弧の中に指定しているのが、キーと値の型になります。
Of
の後に指定しているのがキーで、カンマで区切って値の型を指定します。
今回はどちらもString
なので、キーも値も文字列です。
そのあとの処理でAddメソッドを呼び出して、辞書に3つのキーと値を追加しています。
そして、fruits
辞書に対して、丸括弧で「fruits("blue")
」としています。
これで辞書の指定したキーに対応する値、「grape
」が取得できます。
最後に値を出力すると、「grape
」が出力されました。
辞書の全てのキーと値を取得
作成した辞書をループすることで、全てのキーと値を取得することができます。
ループ毎にセットされる変数のKey
プロパティでキー、Value
プロパティで値を取得することができます。
以下のコードはループして、全てのキーと値を出力しています。
Dim fruits As New Dictionary(Of String, String)
fruits.Add("red", "apple")
fruits.Add("pink", "peach")
fruits.Add("blue", "grape")
fruits.Add("green", "melon")
fruits.Add("yellow", "banana")
For Each fruit In fruits
Console.WriteLine("キー:" & fruit.Key & " 値:" & fruit.Value)
Next
最初のコードと同じように、fruits
変数にキーが文字列で値も文字列の辞書を作成しました。
次の行から、5つの値とキーを追加しました。
そしてFor Each
キーワードを使用して、全てのキーと値を出力しています。
For Each
のIn
の右側にfruits
辞書を指定して、左側のfruit
変数にキーと値にアクセスできるオブジェクト(KeyValuePair
)が毎回設定されます。
出力を確認すると、下記のように全てのキーとを値が確認できました。
キー:red 値:apple
キー:pink 値:peach
キー:blue 値:grape
キー:green 値:melon
キー:yellow 値:banana
辞書の全てのキーを取得する
辞書のキーだけを取得したいときは、辞書からKeysにアクセスすると良いです。
下記のコードでは辞書のKeysにアクセスして、キーのみを取得しています。
Dim fruits As New Dictionary(Of String, String)
fruits.Add("pink", "peach")
fruits.Add("green", "melon")
fruits.Add("yellow", "banana")
For Each color In fruits.Keys
Console.WriteLine(color)
Next
fruits
辞書を作成し、3つのキーと値を入れました。
For Each
ループの右の方で、fruits
辞書のKeys
プロパティにアクセスしています。
color
変数には、キーの値がループ毎に取得できます。
出力すると、下記のようにキーがすべて取得できました。
pink
green
yellow
辞書の全ての値を取得する
辞書のキーだけを取得したいときは、辞書からValuesにアクセスすると良いです。
Keysと同様に、Valuesにアクセスすることで、値のみ全て取得できます。
Dim fruits As New Dictionary(Of String, String)
fruits.Add("pink", "peach")
fruits.Add("green", "melon")
fruits.Add("yellow", "banana")
For Each fruit In fruits.Values
Console.WriteLine(fruit)
Next
先ほどと同じ、fruits
辞書を用意しています。
そして、For Each
ループでfruits.Values
を指定しました。
これで、ループ毎にfruit
変数に値のみ取得できます。
出力すると、下記のように値のみ出力されました。
peach
melon
banana
辞書の要素数を取得する
作成した辞書からCountメソッドを呼び出すと、辞書の要素数を取得することができます。
下記の例で、作成した辞書の要素数を取得して、出力しました。
Dim fruits As New Dictionary(Of String, String)
fruits.Add("pink", "peach")
fruits.Add("green", "melon")
fruits.Add("yellow", "banana")
Dim fruitCount As Integer = fruits.Count()
Console.WriteLine(fruitCount) ' 3
fruits
辞書を作成して、3つのキーと値を追加しました。
そのあとに、fruits
辞書からCountメソッドを呼び出して、要素数を取得しています。
出力すると、要素数の「3」が出力されました。
辞書の値を取得する方法のまとめ
今回はVB.NETの辞書の値を取得する方法について書きました。
記事の内容をまとめると、下記のようになります。
・辞書オブジェクトをFor Eachでループすることで、全てのキーと値を取得できた。
・辞書オブジェクトからKeysプロパティにアクセスすると、キーのみを取得できた。
・辞書オブジェクトからValuesプロパティにアクセスすると、値のみを取得できた。
・辞書オブジェクトからCountメソッドを呼び出すと要素数を取得できた。
コメント