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

【C#】SortedSetに特定の要素が含まれているか確認する方法(Containsメソッドの使い方)

C#のSortedSet<T>クラスには、指定した要素がセット内に存在するかどうかを判定するためのContainsメソッドが用意されています。この記事では、Containsメソッドを使った具体的なコード例とその実行結果を紹介します。

Containsメソッドとは

Contains(T item)は、SortedSet内に指定した要素が存在する場合はtrue、存在しない場合はfalseを返すメソッドです。SortedSetは内部でソートされた状態を維持しているため、高速な検索が可能です。

サンプルコード1:文字列のSortedSetで要素を検索する

まずは、文字列型のSortedSetに対してContainsメソッドを使用する例を見てみましょう。

using System;
using System.Collections.Generic;

public class Demo {
   public static void Main() {
      SortedSet<string> set1 = new SortedSet<string>();
      set1.Add("CD");
      set1.Add("CD"); // 重複した要素は無視される
      set1.Add("CD");
      set1.Add("CD");

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

      Console.WriteLine("SortedSet1に要素DEは含まれているか? = " + set1.Contains("DE"));

      SortedSet<string> set2 = new SortedSet<string>();
      set2.Add("BC");
      set2.Add("CD");
      set2.Add("DE");
      set2.Add("EF");
      set2.Add("AB");
      set2.Add("HI");
      set2.Add("JK");

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

      Console.WriteLine("SortedSet2はSortedSet1の上位集合か? = " + set2.IsSupersetOf(set1));
   }
}

実行結果

上記のコードを実行すると、次のような出力が得られます。

SortedSet1の要素一覧...
CD
SortedSet1に要素DEは含まれているか? = False
SortedSet2の要素一覧...
AB
BC
CD
DE
EF
HI
JK
SortedSet2はSortedSet1の上位集合か? = True

解説のポイント

  • SortedSetは重複する要素を受け付けないため、同じ値「CD」を複数回追加しても、セット内には1つだけ登録されます。
  • set1.Contains("DE")は「DE」がset1に存在しないためFalseを返します。
  • IsSupersetOfメソッドを使うと、あるセットが別のセットの上位集合(スーパーセット)であるかどうかも判定できます。ここではset2がset1のすべての要素(CD)を含むためTrueとなっています。

サンプルコード2:整数のSortedSetで要素を検索する

続いて、整数型のSortedSetに対してContainsメソッドを使用する例です。

using System;
using System.Collections.Generic;

public class Demo {
   public static void Main() {
      SortedSet<int> mySet = new SortedSet<int>();
      mySet.Add(100);
      mySet.Add(200);
      mySet.Add(300);
      mySet.Add(400);

      Console.WriteLine("SortedSetの要素一覧...");
      foreach (int res in mySet) {
         Console.WriteLine(res);
      }

      Console.WriteLine("SortedSetに要素400は含まれているか? = " + mySet.Contains(400));
   }
}

実行結果

このコードを実行すると、以下の出力が得られます。

SortedSetの要素一覧...
100
200
300
400
SortedSetに要素400は含まれているか? = True

解説のポイント

  • 整数400はmySetに登録済みのため、mySet.Contains(400)Trueを返します。
  • foreachループで要素を列挙すると、SortedSetは常に昇順にソートされた順序で要素を返すことがわかります。

まとめ

SortedSetに特定の要素が含まれているかどうかを確認するには、Containsメソッドを使用します。戻り値はbool型で、要素が存在すればtrue、存在しなければfalseとなります。また、SortedSetは自動的に要素をソートし、重複を排除するため、順序付きの一意なデータ集合を扱う場面で非常に便利です。

  1. C#のCollectionに要素が含まれているかどうかを確認する方法

    C#でコレクション(Collection)内に特定の要素が存在するかどうかを確認するには、Contains()メソッドを使用します。このメソッドは、指定した要素がコレクション内に見つかった場合は true、見つからなかった場合は false を返します。以下に具体的なコード例を示します。例1:整数のコレクションの場合using System; using System.Collections.ObjectModel; public class Demo {     public static void Main(){    

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

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