C# HashSetのサンプル

C#のHashSetのサンプルです。

確認環境
・Microsoft Visual Studio Community 2017

目次

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

HashSetクラス

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

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

using System;
using System.Collections.Generic;

class Test1
{
    static void Main()
    {
        var colors = new HashSet<string>() { "赤", "黄", "青" };

        foreach (var a in colors)
        {
            Console.WriteLine(a);// 赤 黄 青と出力される
        }
    }
}

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

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

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

using System;
using System.Collections.Generic;

class Test1
{
    static void Main()
    {
        var colors = new HashSet<string>();
        colors.Add("赤");
        colors.Add("黄");
        colors.Add("青");

        foreach (var a in colors)
        {
            Console.WriteLine(a);// 赤 黄 青
        }
    }
}

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

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

指定の要素があるかを返すサンプルです。

using System;
using System.Collections.Generic;

class Test1
{
    static void Main()
    {
        var colors = new HashSet<string>();

        colors.Add("赤");
        colors.Add("黄");
        colors.Add("青");

        Console.WriteLine(colors.Contains("青"));// True
    }
}

14行目は、Containsメソッドで指定の要素があるかを取得しています。
ある場合trueです。

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

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

using System;
using System.Collections.Generic;

class Test1
{
    static void Main()
    {
        var colors = new HashSet<string>();

        colors.Add("赤");
        colors.Add("黄");
        colors.Add("青");

        Console.WriteLine(colors.Count);// 3
    }
}

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

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

要素を追加するサンプルです。

using System;
using System.Collections.Generic;

class Test1
{
    static void Main()
    {
        //HashSet<string> colors = new HashSet<string>();
        var colors = new HashSet<string>();

        colors.Add("赤");
        colors.Add("黄");
        colors.Add("青");

        colors.Add("赤");

        foreach (var a in colors)
        {
            Console.WriteLine(a);// 赤 黄 青
        }
    }
}

9行目は、HashSetクラスをインスタンス化しています。
代入する変数はvarで宣言できます。8行目のようにデータの型でも可能です。
11~13行目は、Addメソッドで値を追加しています。
15行目もAddメソッドで値を追加していますが、重複した値のため追加できません。
17~20行目は、foreach文で値を取得しています。

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

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

using System;
using System.Collections.Generic;

class Test1
{
    static void Main()
    {
        var colors = new HashSet<string>();

        colors.Add("赤");
        colors.Add("黄");
        colors.Add("青");

        colors.Remove("黄");
        foreach (var a in colors)
        {
            Console.WriteLine(a);// 赤 青
        }
    }
}

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

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

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

using System;
using System.Collections.Generic;

class Test1
{
    static void Main()
    {
        var colors = new HashSet<string>();

        colors.Add("赤");
        colors.Add("黄");
        colors.Add("青");

        colors.Clear();
        Console.WriteLine(colors.Count);// 0
    }
}

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

関連の記事

C# Listのサンプル
C# Dictionaryのサンプル

△上に戻る