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

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

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은 항상 정렬된 상태를 유지하며 중복 요소는 자동으로 제거됩니다.