C#でSortedSetと指定されたコレクションに同じ要素が含まれているか確認する方法
C#では、SetEqualsメソッドを使用することで、SortedSetと指定されたコレクションに同じ要素が含まれているかどうかを簡単に確認できます。このメソッドは、両者に含まれる要素が完全に一致する場合にtrueを返し、一致しない場合はfalseを返します。
サンプルコード1:異なる要素を持つ場合
まず、異なる要素を持つ2つのSortedSetを比較する例を見てみましょう。
using System;
using System.Collections.Generic;
public class Demo {
public static void Main() {
SortedSet<int> set1 = new SortedSet<int>();
set1.Add(100);
set1.Add(200);
set1.Add(300);
SortedSet<int> set2 = new SortedSet<int>();
set2.Add(450);
set2.Add(550);
set2.Add(650);
set2.Add(750);
set2.Add(800);
Console.WriteLine("同じ要素が含まれているか? = " + set1.SetEquals(set2));
}
}実行結果
上記のコードを実行すると、以下の出力が得られます。
同じ要素が含まれているか? = False
set1とset2には共通する要素がないため、結果はFalseとなります。
サンプルコード2:同じ要素を持つ場合
次に、両方のSortedSetに同じ要素が含まれている場合の例を確認しましょう。
using System;
using System.Collections.Generic;
public class Demo {
public static void Main() {
SortedSet<int> set1 = new SortedSet<int>();
set1.Add(100);
set1.Add(200);
set1.Add(300);
SortedSet<int> set2 = new SortedSet<int>();
set2.Add(100);
set2.Add(200);
set2.Add(300);
Console.WriteLine("同じ要素が含まれているか? = " + set1.SetEquals(set2));
}
}実行結果
上記のコードを実行すると、以下の出力が得られます。
同じ要素が含まれているか? = True
set1とset2がまったく同じ要素(100、200、300)を持っているため、結果はTrueとなります。
まとめ
SortedSetのSetEqualsメソッドを使えば、要素の順序や個数に関係なく、2つのコレクションが同一の要素セットを持つかどうかを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()メ
-
C#でHashSetと指定されたコレクションに共通の要素があるか確認する方法
C#において、HashSetと指定されたコレクションとの間に共通の要素が存在するかどうかを確認したい場合は、Overlaps() メソッドを使用します。Overlaps() メソッドは、HashSetと引数で渡されたコレクションの間に共通する要素が1つでも存在すれば true を返し、まったく存在しなければ false を返します。このメソッドは System.Collections.Generic 名前空間に含まれており、引数として IEnumerable<T> 型のコレクションを受け取ります。例1:int型のHashSetの場合まずは、整数値を格納した2つのHashSetで共通