C#에서 SortedSet과 지정된 컬렉션이 서로 같은 요소들을 포함하고 있는지 확인하려면 SetEquals() 메서드를 사용합니다. 이 메서드는 SortedSet과 전달된 컬렉션(또는 다른 SortedSet)이 정확히 동일한 요소 집합을 가지고 있는지 비교하여, 같으면 True, 다르면 False를 반환합니다.
SetEquals() 메서드란?
SetEquals(IEnumerable<T> other) 메서드는 현재 SortedSet 개체와 지정된 컬렉션에 포함된 요소들이 완전히 일치하는지 검사합니다. 요소의 순서나 개수 추가 여부와 관계없이, 두 집합이 동일한 요소만을 포함하는 경우에만 참을 반환합니다.
예제 1: 다른 요소를 가진 경우
다음 예제에서는 두 개의 SortedSet을 생성하고 요소를 추가한 뒤, SetEquals 메서드로 비교해 보겠습니다.
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);
SortedSet<int> set2 = new SortedSet<int>();
set2.Add(450);
set2.Add(550);
set2.Add(650);
set2.Add(750);
set2.Add(800);
Console.WriteLine("두 집합은 동일한 요소를 포함합니까? = " + set1.SetEquals(set2));
}
}출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
두 집합은 동일한 요소를 포함합니까? = False
set1에는 100, 200, 300이 저장되어 있고 set2에는 450, 550, 650, 750, 800이 저장되어 있으므로, 두 집합의 요소가 서로 다르기 때문에 False가 반환됩니다.
예제 2: 동일한 요소를 가진 경우
이번에는 두 집합에 같은 요소들을 넣고 비교해 보겠습니다.
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);
SortedSet<int> set2 = new SortedSet<int>();
set2.Add(100);
set2.Add(200);
set2.Add(300);
Console.WriteLine("두 집합은 동일한 요소를 포함합니까? = " + set1.SetEquals(set2));
}
}출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
두 집합은 동일한 요소를 포함합니까? = True
두 집합 모두 100, 200, 300이라는 동일한 요소를 포함하고 있으므로 True가 반환됩니다.
정리
SetEquals() 메서드는 SortedSet뿐만 아니라 List, 배열 등 IEnumerable<T>를 구현하는 모든 컬렉션과 비교할 수 있습니다. 중복 요소는 무시되며, 오직 고유한 값들의 집합이 일치하는지만 판단한다는 점을 기억하면 유용하게 활용할 수 있습니다.