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

C#でSortedSetと指定されたコレクションが共通の要素を持つかどうかを確認する方法

C#のSortedSet<T>クラスには、セットと指定されたコレクションとの間に共通の要素が1つでも存在するかどうかを判定できるOverlapsメソッドが用意されています。共通の要素が存在する場合はtrue、存在しない場合はfalseが返されます。

ここでは、実際のサンプルコードを使って、Overlapsメソッドの使い方を詳しく解説します。

例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);
      set1.Add(400);
      set1.Add(500);
      set1.Add(600);

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

      Console.WriteLine("Does it share common elements? = " + set1.Overlaps(set2));
   }
}

出力結果

Does it share common elements? = True

set1とset2にはどちらも100から600までの同一の要素が含まれているため、OverlapsメソッドはTrueを返します。

例2:共通の要素がない場合

次に、2つのセットにまったく共通する要素が存在しないケースを確認してみましょう。

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("Does it share common elements? = " + set1.Overlaps(set2));
   }
}

出力結果

Does it share common elements? = False

set1には100〜300の要素、set2には450〜800の要素が格納されており、両者に共通する要素は1つもありません。そのため、OverlapsメソッドはFalseを返します。

Overlapsメソッドのポイント

  • 戻り値はbool型で、共通要素の有無のみを判定します(どの要素が重複しているかは返しません)。
  • 引数にはIEnumerable<T>型のコレクションを指定できるため、SortedSetだけでなくListや配列なども渡せます。
  • 共通の要素が1つでも存在すればtrueを返すため、集合の積(交差)が空でないかどうかを効率的にチェックできます。
  1. C#でHashSetと指定されたコレクションに共通の要素があるか確認する方法

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

  2. C#でListコレクションから要素を取得する方法

    C#では、List<T>コレクションに格納した要素へ、インデックスを指定するだけで簡単にアクセスできます。本記事では、Listから要素を取得する基本的な方法を、具体的なコード例とともに解説します。 Listへの要素の追加 まず、List<int>型のコレクションを作成し、Addメソッドを使って整数の要素を追加します。 List<int> list = new List<int>(); list.Add(20); list.Add(40); list.Add(60); list.Add(80); インデックスによる要素の取得 リストから特定の