C#에서 SortedSet<T>가 지정된 컬렉션의 하위 집합(부분 집합)인지 확인해야 하는 경우가 종종 있습니다. 이럴 때 IsSubsetOf() 메서드를 사용하면 아주 간단하게 확인할 수 있습니다.
IsSubsetOf() 메서드는 현재 SortedSet의 모든 요소가 대상 컬렉션에 포함되어 있으면 true를 반환하고, 하나라도 포함되어 있지 않으면 false를 반환합니다.
예제 1
두 개의 SortedSet을 만들고 첫 번째 집합이 두 번째 집합의 하위 집합인지 확인해 보겠습니다.
using System;
using System.Collections.Generic;
public class Demo {
public static void Main(){
SortedSet<string> set1 = new SortedSet<string>();
set1.Add("AB");
set1.Add("BC");
set1.Add("CD");
set1.Add("EF");
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("SortedSet1 is a subset of SortedSet2? = "+set1.IsSubsetOf(set2));
}
}set1의 모든 요소(AB, BC, CD, EF)가 set2에 포함되어 있으므로 결과는 True가 됩니다.
실행 결과
위 코드를 실행하면 다음과 같은 출력을 얻을 수 있습니다.
Elements in SortedSet1... AB BC CD EF Elements in SortedSet2... AB BC CD DE EF HI JK SortedSet1 is a subset of SortedSet2? = True
예제 2
이번에는 동일한 요소를 여러 번 추가하는 경우를 살펴보겠습니다. 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("SortedSet1 is a subset of SortedSet2? = "+set1.IsSubsetOf(set2));
}
}set1에는 "CD"가 네 번 추가되었지만 실제로 저장된 요소는 "CD" 하나뿐입니다. 이 요소는 set2에도 존재하므로 역시 True가 출력됩니다.
실행 결과
실행 결과는 다음과 같습니다.
Elements in SortedSet1... CD Elements in SortedSet2... AB BC CD DE EF HI JK SortedSet1 is a subset of SortedSet2? = True
핵심 정리
IsSubsetOf()메서드는 현재 SortedSet의 모든 요소가 지정된 컬렉션에 포함되어 있는지 검사합니다.- 모든 요소가 포함되어 있으면
true, 그렇지 않으면false를 반환합니다. - SortedSet은 항상 정렬된 상태를 유지하며 중복 요소는 자동으로 제거됩니다.