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

VB.NETのHashSetの使い方のサンプルです。

確認環境
・Microsoft Visual Studio Community 2019

目次

仕組み HashSetクラス
初期値 要素に初期値をセットする
取得する 要素をすべて取得する(For Each文)
  指定の要素があるかを返す (Containsメソッド)
  要素数を取得する (Countプロパティ)
追加する 要素を追加する (Addメソッド)
削除する 要素を指定して要素を削除する (Removeメソッド)
  すべての要素を削除する (Clearメソッド)

HashSetクラス

Dim a As New HashSet(Of String)

上記はHashSetクラスをインスタンス化して変数aに代入しています。
この変数aは複数の値を持てるようになります。
各値のデータ型はStringです。((Of String)のため)

 

HashSetの変数の図

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

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

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

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

要素をすべて取得する(For Each文)

Module Module1
    Sub Main()
        Dim a As New HashSet(Of String)
        a.Add("赤")
        a.Add("黄")
        a.Add("青")

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

8行目は、for文ですべての要素を取得しています。

指定の要素があるかを返す (Containsメソッド)

Module Module1
    Sub Main()
        Dim a As New HashSet(Of String)
        a.Add("赤")
        a.Add("黄")
        a.Add("青")

        Console.WriteLine(a.Contains("青")) 'Trueと出力される
        Console.WriteLine(a.Contains("黒")) 'Falseと出力される
    End Sub
End Module

8行目は、Containsメソッドで指定の値が存在するが確認しています。存在するのでTrueです。
9行目は、指定の値が存在しないのでFalseです。

要素数を取得する (Countプロパティ)

Module Module1
    Sub Main()
        Dim a As New HashSet(Of String)
        a.Add("赤")
        a.Add("黄")
        a.Add("青")

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

8行目は、Countプロパティで要素数を取得しています。

要素を追加する (Addメソッド)

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

        a.Add("赤")
        a.Add("黄")
        a.Add("青")

        a.Add("赤")

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

5~7行目は、Addメソッドで値を追加しています。
9行目もAddメソッドで値を追加していますが、重複した値のため追加できません。
11~13行目は、For Each文で値を取得しています。

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

Module Module1
    Sub Main()
        Dim a As New HashSet(Of String)
        a.Add("赤")
        a.Add("黄")
        a.Add("青")

        a.Remove("黄")

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

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

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

Module Module1
    Sub Main()
        Dim a As New HashSet(Of String)
        a.Add("赤")
        a.Add("黄")
        a.Add("青")

        a.Clear()

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

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

関連の記事

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

△上に戻る