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가 반환됩니다.