VB.NET Dictionaryのサンプル

VB.NETのDictionaryのサンプルです。

確認環境
・Microsoft Visual Studio Community 2019

目次

仕組み Dictionaryクラス
初期値をセットする 要素に初期値をセットする
取得する キーを指定して値を取得する
  キーと値をすべて取得する(for文)
  キーの集合を取得する (Keysプロパティ)
  値の集合を取得する(Valuesプロパティ)
  指定のキーがあるか真偽値を返す(ContainsKeyメソッド)
  指定の値があるか真偽値を返す(ContainsValueメソッド)
  要素数を取得する (Countメソッド)
追加する キーと値を追加する (Addメソッド)
更新する キーを指定して値を更新する
削除する 要素の位置を指定して要素を削除する (Removeメソッド)
  すべての要素を削除する (Clearメソッド)

Dictionaryクラス

要素に初期値をセットする

要素に初期値をセットするサンプルです。

Module Module1
    Sub Main()
        Dim a As New Dictionary(Of String, String) From {
            {"A", "赤"},
            {"B", "黄"},
            {"C", "青"}
            }

        For Each b In a
            Console.WriteLine(b.Key) 'A B Cと出力される
            Console.WriteLine(b.Value) '赤 黄 青と出力される
        Next
    End Sub
End Module

3~7行目は、Dictionaryクラスをインスタンス化し、かつ初期値をセットしています。
9~12行目は、For Each文で値を取得しています。

キーを指定して値を取得する

キーを指定して値を取得するサンプルです。

Module Module1
    Sub Main()
        Dim a As New Dictionary(Of String, String)

        a.Add("A", "赤")
        a.Add("B", "黄")
        a.Add("C", "青")

        Console.WriteLine(a("B")) '黄と出力される
    End Sub
End Module

9行目は、("B")で要素の位置を指定して値を取得しています。

キーと値をすべて取得する(for文)

キーと値をすべて取得するサンプルです。

Module Module1
    Sub Main()
        Dim a As New Dictionary(Of String, String)
        a.Add("A", "赤")
        a.Add("B", "黄")
        a.Add("C", "青")

        For Each b In a
            Console.WriteLine(b.Key) 'A B Cと出力される
            Console.WriteLine(b.Value) '赤 黄 青と出力される
        Next

        For i = 0 To a.Count - 1
            Console.WriteLine(a.Keys(i)) 'A B Cと出力される
            Console.WriteLine(a.Values(i)) '赤 黄 青と出力される
        Next
    End Sub
End Module

8行目は、For Each文でキーと値をすべて取得しています。
13行目は、For文でキーと値を取得しています。

キーの集合を取得する (Keysプロパティ)

キーの集合を取得するサンプルです。

Module Module1
    Sub Main()
        Dim a As New Dictionary(Of String, String)
        a.Add("A", "赤")
        a.Add("B", "黄")
        a.Add("C", "青")

        For Each b In a.Keys
            Console.WriteLine(b) 'A B Cと出力される
        Next
    End Sub
End Module

8行目は、keysプロパティでキーの集合を取得しています。

値の集合を取得する(Valuesプロパティ)

値の集合を取得するサンプルです。

Module Module1
    Sub Main()
        Dim a As New Dictionary(Of String, String)
        a.Add("A", "赤")
        a.Add("B", "黄")
        a.Add("C", "青")

        For Each b In a.Values
            Console.WriteLine(b) '赤 黄 青と出力される
        Next
    End Sub
End Module

8行目は、valuesプロパティで値の集合を取得しています。

指定のキーがあるか真偽値を返す(ContainsKeyメソッド)

指定のキーがあるか真偽値を返すサンプルです。

Module Module1
    Sub Main()
        Dim a As New Dictionary(Of String, String)
        a.Add("A", "赤")
        a.Add("B", "黄")
        a.Add("C", "青")

        If (a.ContainsKey("B")) Then
            Console.WriteLine("存在します") '存在しますと出力される
        End If

        If (a.ContainsKey("黄")) Then
            Console.WriteLine("あり") '出力されない
        End If
    End Sub
End Module

8行目は、ContainsKeyメソッドで指定したキーがあるのでTrueです。
12行目は、指定したキーがないのでFalseです。

指定の値があるか真偽値を返す(ContainsValueメソッド)

指定の値があるか真偽値を返すサンプルです。

Module Module1
    Sub Main()
        Dim a As New Dictionary(Of String, String)
        a.Add("A", "赤")
        a.Add("B", "黄")
        a.Add("C", "青")

        If (a.ContainsValue("黄")) Then
            Console.WriteLine("存在します") '存在しますと出力される
        End If

        If (a.ContainsValue("B")) Then
            Console.WriteLine("あり") '出力されない
        End If
    End Sub
End Module

8行目は、ContainsValueメソッドで指定した値があるのでTrueです。
12行目は、指定した値がないのでFalseです。

要素数を取得する (Countメソッド)

要素数を取得するサンプルです。

Module Module1
    Sub Main()
        Dim a As New Dictionary(Of String, String)
        a.Add("A", "赤")
        a.Add("B", "黄")
        a.Add("C", "青")

        Console.WriteLine(a.Count) '3と出力される
    End Sub
End Module

8行目は、Countメソッドで要素数を取得しています。

キーと値を追加する (Addメソッド)

キーと値を追加するサンプルです。

Module Module1
    Sub Main()
        Dim a As New Dictionary(Of String, String)

        a.Add("A", "赤")
        a.Add("B", "黄")
        a.Add("C", "青")

        For Each b In a
            Console.WriteLine(b.Key) 'A B Cと出力される
            Console.WriteLine(b.Value) '赤 黄 青と出力される
        Next
    End Sub
End Module

3行目は、Dictionaryクラスをインスタンス化しています。
5~7行目は、Addメソッドでキーと値を追加しています。
9~12行目は、For Each文で値を取得しています。

キーを指定して値を更新する

キーを指定して値を更新するサンプルです。

Module Module1
    Sub Main()
        Dim a As New Dictionary(Of String, String)

        a.Add("A", "赤")
        a.Add("B", "黄")
        a.Add("C", "青")

        a("B") = "オレンジ"

        For Each b In a
            Console.WriteLine(b.Key) 'A B Cと出力される
            Console.WriteLine(b.Value) '赤 オレンジ 青と出力される
        Next
    End Sub
End Module

9行目は、キーを指定して値を更新しています。

要素の位置を指定して要素を削除する (Removeメソッド)

要素の位置を指定して要素を削除するサンプルです。

Module Module1
    Sub Main()
        Dim a As New Dictionary(Of String, String)
        a.Add("A", "赤")
        a.Add("B", "黄")
        a.Add("C", "青")

        a.Remove("B")

        For Each b In a
            Console.WriteLine(b.Key) 'A Cと出力される
            Console.WriteLine(b.Value) '赤 青と出力される
        Next
    End Sub
End Module

8行目は、Removeメソッドでキーを指定して削除しています。

すべての要素を削除する (Clearメソッド)

すべての要素を削除するサンプルです。

Module Module1
    Sub Main()
        Dim a As New Dictionary(Of String, String)
        a.Add("A", "赤")
        a.Add("B", "黄")
        a.Add("C", "青")

        a.Clear()

        Console.WriteLine(a.Count) '0と出力される
    End Sub
End Module

8行目は、Clearメソッドですべての要素を削除しています。

関連の記事

VB.NET Listの使い方のサンプル
VB.NET HashSetのサンプル

△上に戻る