C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#でHashSetを初期化する方法【重複要素の削除も解説】

C#でHashSetを初期化するには

C#でHashSetを初期化する最も簡単な方法は、コンストラクタの引数に配列などのコレクションを渡すことです。これにより、既存のコレクションからHashSetインスタンスを生成できます。

var h = new HashSet<string>(arr1);

上記のコードでは、配列 arr1 をHashSetに設定しています。使用している配列は以下の通りです。

string[] arr1 = {
    "electronics",
    "accessories",
    "electronics",
};

この配列には「electronics」が重複して含まれています。HashSetは同一の要素を許可しないコレクションであるため、初期化の時点で重複した要素は自動的に排除されます。

サンプルコード

以下は、C#でHashSetを初期化し、配列内の重複する単語を削除する実装例です。

using System;
using System.Collections.Generic;
using System.Linq;

class Program {
    static void Main() {
        string[] arr1 = {
            "electronics",
            "accessories",
            "electronics",
        };

        Console.WriteLine(string.Join(",", arr1));

        // HashSetの初期化
        var h = new HashSet<string>(arr1);
        // 重複する単語を削除
        string[] arr2 = h.ToArray();
        Console.WriteLine(string.Join(",", arr2));
    }
}

実行結果

electronics,accessories,electronics
electronics,accessories

元の配列では「electronics」が2回出力されていますが、HashSetを経由することで重複が取り除かれ、一意な値のみが出力されていることが確認できます。

ポイントまとめ

  • HashSetは重複する要素を許可しないため、初期化時に自動的に重複が排除されます。
  • コンストラクタにIEnumerable<T>型のコレクション(配列、Listなど)を渡すだけで簡単に初期化できます。
  • ToArray()メソッドを使用する場合は、System.Linq名前空間の参照が必要です。
  1. JavaでのArrayListとHashSetの違いを徹底解説!使い分けのポイントも紹介

    HashSetとArrayListは、どちらもJavaコレクションフレームワークにおいて最も重要なクラスの一つです。それぞれ特徴が異なるため、用途に応じた適切な使い分けが求められます。本記事では、ArrayListとHashSetの主な違いを6つの観点から比較し、実際のサンプルコードとともにわかりやすく解説します。ArrayListとHashSetの違い一覧No.項目ArrayListHashSet1実装インターフェースListインターフェースを実装しています。Setインターフェースを実装しています。2内部構造内部的には配列(動的配列)を使って実装されています。内部的にはHashMapを使って

  2. 組み込みライブラリを使わずにPythonでHashSet(ハッシュセット)を実装する方法

    本記事では、Pythonの組み込みハッシュテーブルライブラリを使用せずに、HashSet(ハッシュセット)データ構造をゼロから設計・実装する方法を解説します。実装すべき主な操作は以下の3つです。add(x) ― 値 x をHashSetに挿入しますcontains(x) ― 値 x がHashSetに存在するかどうかを判定しますremove(x) ― 値 x をHashSetから削除します。値が存在しない場合は何もしません動作確認のシナリオまずHashSetを初期化し、その後 add(1) → add(3) → contains(1) → contains(2) → add(2) → cont