【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は自動的に要素をソートし、重複を排除するため、順序付きの一意なデータ集合を扱う場面で非常に便利です。
-
C#のCollectionに要素が含まれているかどうかを確認する方法
C#でコレクション(Collection)内に特定の要素が存在するかどうかを確認するには、Contains()メソッドを使用します。このメソッドは、指定した要素がコレクション内に見つかった場合は true、見つからなかった場合は false を返します。以下に具体的なコード例を示します。例1:整数のコレクションの場合using System; using System.Collections.ObjectModel; public class Demo { public static void Main(){  
-
C#でHashSetに指定された要素が含まれているか確認する方法
C#のHashSet<T>に特定の要素が含まれているかどうかを確認するには、Contains()メソッドを使用します。このメソッドは、指定した要素がHashSet内に存在する場合はtrue、存在しない場合はfalseを返します。Contains()メソッドの基本構文public bool Contains (T item);引数には検索対象の要素を渡します。HashSetはハッシュテーブルを基盤としているため、要素の検索はO(1)の計算量で実行でき、非常に高速です。例1:数値型のHashSetでContains()を使う以下は、int型のHashSetに対してContains()メ