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

C#에서 SortedSet과 지정된 컬렉션의 요소가 동일한지 확인하는 방법

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>를 구현하는 모든 컬렉션과 비교할 수 있습니다. 중복 요소는 무시되며, 오직 고유한 값들의 집합이 일치하는지만 판단한다는 점을 기억하면 유용하게 활용할 수 있습니다.