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

C#で2つのHashSetオブジェクトが等しいかどうかを確認する方法

C#で2つのHashSetオブジェクトが等しいかどうかを確認するには、Equalsメソッドを使用します。このメソッドは、指定されたオブジェクトが現在のインスタンスと等しいかどうかを判定し、結果をbool値(true / false)として返します。

以下に具体的なサンプルコードを示します。

例1:同じインスタンスを代入して比較する場合

using System;
using System.Collections.Generic;

public class Demo {
   public static void Main(String[] args) {
      HashSet<string> set1 = new HashSet<string>();
      set1.Add("A");
      set1.Add("B");
      set1.Add("C");
      set1.Add("D");
      set1.Add("E");
      set1.Add("F");
      set1.Add("G");
      set1.Add("H");

      Console.WriteLine("HashSet1の要素...");
      foreach (string res in set1) {
         Console.WriteLine(res);
      }

      HashSet<string> set2 = new HashSet<string>();
      set2.Add("John");
      set2.Add("Jacob");
      set2.Add("Ryan");
      set2.Add("Tom");
      set2.Add("Andy");
      set2.Add("Tim");
      set2.Add("Steve");
      set2.Add("Mark");

      Console.WriteLine("HashSet2の要素...");
      foreach (string res in set2) {
         Console.WriteLine(res);
      }

      HashSet<string> set3 = new HashSet<string>();
      set3 = set2;
      Console.WriteLine("HashSet3はHashSet2と等しいか? = " + set3.Equals(set2));
   }
}

出力結果

HashSet1の要素...
A
B
C
D
E
F
G
H
HashSet2の要素...
John
Jacob
Ryan
Tom
Andy
Tim
Steve
Mark
HashSet3はHashSet2と等しいか? = True

この例では、set3にset2を代入しているため、両者は同じインスタンスを参照しています。そのため、Equalsメソッドの結果はTrueとなります。

例2:異なるインスタンスを比較する場合

using System;
using System.Collections.Generic;

public class Demo {
   public static void Main(String[] args) {
      HashSet<string> set1 = new HashSet<string>();
      set1.Add("A");
      set1.Add("B");
      set1.Add("C");
      set1.Add("D");
      set1.Add("E");
      set1.Add("F");
      set1.Add("G");
      set1.Add("H");

      Console.WriteLine("HashSet1の要素...");
      foreach (string res in set1) {
         Console.WriteLine(res);
      }

      HashSet<string> set2 = new HashSet<string>();
      set2.Add("John");
      set2.Add("Jacob");
      set2.Add("Ryan");
      set2.Add("Tom");
      set2.Add("Andy");
      set2.Add("Tim");
      set2.Add("Steve");
      set2.Add("Mark");

      Console.WriteLine("HashSet2の要素...");
      foreach (string res in set2) {
         Console.WriteLine(res);
      }

      Console.WriteLine("HashSet2はHashSet1と等しいか? = " + set2.Equals(set1));
   }
}

出力結果

HashSet1の要素...
A
B
C
D
E
F
G
H
HashSet2の要素...
John
Jacob
Ryan
Tom
Andy
Tim
Steve
Mark
HashSet2はHashSet1と等しいか? = False

set1とset2はそれぞれ独立して生成されたインスタンスであるため、Equalsメソッドの結果はFalseになります。

補足:SetEqualsメソッドで要素の中身を比較する

Equalsメソッドがオブジェクトの参照(同一性)を比較するのに対し、セットの要素が同じかどうかを確認したい場合はSetEqualsメソッドを使用します。

// 両方のセットが同じ要素を持つかどうかを比較
bool isEqual = set1.SetEquals(set2);

SetEqualsは、両方のHashSetがまったく同じ要素を含んでいる場合にtrueを返します。要素の順序は問われず、集合としての一致を判定できるため、実務では内容の比較にこちらを使う場面が多くあります。

  1. Python Pandas – 2つのIndexオブジェクトが等しいかどうかを判定する方法

    Pandasで2つのIndexオブジェクトが等しいかどうかを確認するには、equals()メソッドを使用します。このメソッドは、両方のインデックスの要素と順序が完全に一致している場合にTrueを返し、そうでなければFalseを返します。equals()メソッドの基本的な使い方まず、必要なライブラリをインポートします。import pandas as pd次に、比較対象となるindex1とindex2を作成します。index1 = pd.Index([15, 25, 55, 10, 100, 70, 35, 40, 55]) index2 = pd.Index([15, 25, 55, 10,

  2. Python Pandas入門:DataFrameオブジェクトが等しいかどうかを確認する方法

    PythonのPandasで2つのDataFrame(データフレーム)オブジェクトが等しいかどうかを確認するには、equals()メソッドを使用します。このメソッドは、2つのDataFrameが同じ形状・要素・値を持っている場合にTrueを返し、そうでなければFalseを返します。DataFrame1の作成まず、2つの列(Car、Reg_Price)を持つDataFrame1を作成しましょう。dataFrame1 = pd.DataFrame( { Car: [BMW, Lexus, Audi, Mustang, Bentley, Jaguar], Reg_Pri