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

C#のSortedSetに要素を追加する方法

C#のSortedSet<T>に要素を追加するには、Add()メソッドを使用します。SortedSetは要素を自動的にソートされた状態で保持するコレクションであり、重複する要素は追加されません。

基本的な使い方

以下は、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);
      
      Console.WriteLine("SortedSetの要素一覧...");
      foreach (int res in set1) {
         Console.WriteLine(res);
      }
      
      Console.WriteLine("SortedSetに要素500は含まれているか? = " + set1.Contains(500));
   }
}

出力結果

上記のコードを実行すると、次の出力が得られます。要素がソートされた順序で表示されている点に注目してください。

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

Contains()メソッドを使うことで、指定した要素がセット内に存在するかどうかを確認できます。この例では500は追加していないため、Falseが返されています。

文字列と重複要素の扱い

次に、文字列型のSortedSetに同じ値を複数回追加した場合の動作を見てみましょう。

using System;
using System.Collections.Generic;

public class Demo {
   public static void Main() {
      // 同じ値「CD」を4回追加する
      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);
      }
      
      // 異なる順序で複数の要素を追加する
      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
SortedSet2の要素一覧...
AB
BC
CD
DE
EF
HI
JK
SortedSet2はSortedSet1の上位集合(スーパーセット)か? = True

ポイント解説

この例からわかる重要なポイントは以下の通りです。

  • 重複は自動的に除外される: 「CD」を4回追加しても、セット内には1つだけ格納されます。Add()メソッドは既存の要素と同じ値が渡された場合、それを無視します。
  • 自動ソート: 要素を追加した順序に関係なく、「AB」「BC」「CD」「DE」「EF」「HI」「JK」のように常に昇順で並び替えられます。
  • コレクション操作: IsSupersetOf()メソッドを使用すると、あるセットが別のセットの上位集合(すべての要素を含んでいるか)であるかを判定できます。この例ではset2がset1の全要素「CD」を含むため、Trueが返されます。

なお、Add()メソッドの戻り値はbool型で、要素が実際に追加された場合はtrue、すでに存在して追加されなかった場合はfalseを返します。これを活用すると、重複チェックを簡単に行うことができます。

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