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

C#でHashSetと指定されたコレクションが同じ要素を含むかどうかを確認する方法

C#では、SetEquals()メソッドを使うことで、HashSetオブジェクトと指定されたコレクション(別のHashSetなど)が同じ要素を含んでいるかどうかを簡単に確認できます。このメソッドは、両方のコレクションが完全に同じ要素のセットを持つ場合にtrueを、そうでない場合にはfalseを返します。

以下、具体的なコード例を見ていきましょう。

例1:異なる要素数の場合

using System;
using System.Collections.Generic;

public class Demo {
   public static void Main() {
      HashSet<string> set1 = new HashSet<string>();
      set1.Add("One");
      set1.Add("Two");
      set1.Add("Three");
      set1.Add("Four");
      set1.Add("Five");
      set1.Add("Six");
      set1.Add("Seven");

      HashSet<string> set2 = new HashSet<string>();
      set2.Add("One");
      set2.Add("Two");
      set2.Add("Three");
      set2.Add("Four");

      Console.WriteLine("同じ要素を含んでいますか? = " + set1.SetEquals(set2));
   }
}

出力結果

上記のコードを実行すると、次のような出力が得られます。set1は7つの要素、set2は4つの要素を持つため、結果はfalseになります。

同じ要素を含んでいますか? = False

例2:同一の要素セットの場合

続いて、両方のHashSetがまったく同じ要素を持つケースを見てみましょう。

using System;
using System.Collections.Generic;

public class Demo {
   public static void Main() {
      HashSet<int> set1 = new HashSet<int>();
      set1.Add(100);
      set1.Add(200);
      set1.Add(300);
      set1.Add(400);
      set1.Add(500);
      set1.Add(600);

      HashSet<int> set2 = new HashSet<int>();
      set2.Add(100);
      set2.Add(200);
      set2.Add(300);
      set2.Add(400);
      set2.Add(500);
      set2.Add(600);

      Console.WriteLine("同じ要素を含んでいますか? = " + set1.SetEquals(set2));
   }
}

出力結果

今回は両方のHashSetが同じ6つの整数値を含んでいるため、結果はtrueになります。

同じ要素を含んでいますか? = True

まとめ

SetEquals()メソッドは、HashSet同士だけでなく、Listや配列などIEnumerable<T>を実装する任意のコレクションとの比較にも使用できます。要素の順序は比較対象にならず、含まれる要素の集合が一致しているかどうかのみが判定される点も覚えておくと便利です。

  1. C#でHashSetに指定された要素が含まれているか確認する方法

    C#のHashSet<T>に特定の要素が含まれているかどうかを確認するには、Contains()メソッドを使用します。このメソッドは、指定した要素がHashSet内に存在する場合はtrue、存在しない場合はfalseを返します。Contains()メソッドの基本構文public bool Contains (T item);引数には検索対象の要素を渡します。HashSetはハッシュテーブルを基盤としているため、要素の検索はO(1)の計算量で実行でき、非常に高速です。例1:数値型のHashSetでContains()を使う以下は、int型のHashSetに対してContains()メ

  2. C#でHashSetと指定されたコレクションに共通の要素があるか確認する方法

    C#において、HashSetと指定されたコレクションとの間に共通の要素が存在するかどうかを確認したい場合は、Overlaps() メソッドを使用します。Overlaps() メソッドは、HashSetと引数で渡されたコレクションの間に共通する要素が1つでも存在すれば true を返し、まったく存在しなければ false を返します。このメソッドは System.Collections.Generic 名前空間に含まれており、引数として IEnumerable<T> 型のコレクションを受け取ります。例1:int型のHashSetの場合まずは、整数値を格納した2つのHashSetで共通