Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C#에서 SortedSet이 지정된 컬렉션의 상위 집합인지 확인하는 방법

C#에서 SortedSet이 지정된 컬렉션의 상위 집합(superset)인지 확인하려면 IsSupersetOf() 메서드를 사용합니다. 이 메서드는 현재 SortedSet이 매개변수로 전달된 컬렉션의 모든 요소를 포함하고 있는지 검사한 후, 포함하고 있으면 true, 그렇지 않으면 false를 반환합니다.

상위 집합이란 한 집합이 다른 집합의 모든 요소를 포함하는 관계를 의미합니다. 두 집합이 완전히 동일한 경우에도 상위 집합으로 간주됩니다.

예제 1: 문자열 SortedSet 비교

다음은 SortedSet이 지정된 컬렉션의 상위 집합인지 확인하는 예제입니다.

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("Elements in 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("Elements in SortedSet2...");
      foreach (string res in set2){
         Console.WriteLine(res);
      }
      Console.WriteLine("SortedSet2 is a superset of SortedSet1? = "+set2.IsSupersetOf(set1));
   }
}

출력 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

Elements in SortedSet1...
CD
Elements in SortedSet2...
AB
BC
CD
DE
EF
HI
JK
SortedSet2 is a superset of SortedSet1? = True

위 예제에서 set1에는 중복된 "CD" 값을 여러 번 추가했지만, SortedSet은 중복을 허용하지 않으므로 최종적으로 "CD" 하나만 저장됩니다. set2는 set1의 모든 요소("CD")를 포함하고 있으므로 IsSupersetOf() 메서드가 true를 반환합니다.

예제 2: 정수 SortedSet 비교

이번에는 정수형 SortedSet으로 같은 메서드를 확인해 보겠습니다.

using System;
using System.Collections.Generic;
public class Demo {
   public static void Main(){
      SortedSet<int> set1 = new SortedSet<int>();
      set1.Add(10);
      set1.Add(20);
      set1.Add(30);
      set1.Add(40);
      set1.Add(50);
      set1.Add(60);
      Console.WriteLine("Elements in SortedSet1...");
      foreach (int res in set1){
         Console.WriteLine(res);
      }
      SortedSet<int> set2 = new SortedSet<int>();
      set2.Add(10);
      set2.Add(20);
      set2.Add(30);
      set2.Add(40);
      set2.Add(50);
      set2.Add(60);
      set2.Add(70);
      set2.Add(80);
      set2.Add(90);
      set2.Add(100);
      Console.WriteLine("Elements in SortedSet2...");
      foreach (int res in set2){
         Console.WriteLine(res);
      }
      Console.WriteLine("SortedSet2 is a superset of SortedSet1? = "+set2.IsSupersetOf(set1));
   }
}

출력 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

Elements in SortedSet1...
10
20
30
40
50
60
Elements in SortedSet2...
10
20
30
40
50
60
70
80
90
100
SortedSet2 is a superset of SortedSet1? = True

set2는 set1의 모든 요소(10~60)를 포함할 뿐만 아니라 추가적인 요소(70~100)도 가지고 있습니다. 따라서 set2는 set1의 상위 집합이며, IsSupersetOf() 메서드는 true를 반환합니다. 만약 set1에 set2에 없는 요소가 하나라도 있다면 false가 반환됩니다.