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

C#에서 SortedSet에 요소 추가하는 방법 – Add() 메서드 활용 가이드

C#에서 SortedSet<T>는 요소가 항상 정렬된 상태로 유지되는 컬렉션입니다. 새로운 요소를 추가하려면 Add() 메서드를 사용하며, 추가된 요소는 자동으로 오름차순으로 정렬되어 저장됩니다. 아래 예제를 통해 SortedSet에 요소를 추가하고 활용하는 방법을 살펴보겠습니다.

예제 1: 정수 요소 추가하기

다음 코드는 SortedSet에 정수 값을 추가하고, 전체 요소를 출력한 뒤 특정 요소의 존재 여부를 확인합니다.

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);
        set1.Add(400);
        Console.WriteLine("Elements in SortedSet...");
        foreach (int res in set1) {
            Console.WriteLine(res);
        }
        Console.WriteLine("Does the SortedSet contains the element 500? = "+set1.Contains(500));
    }
}

출력 결과

위 프로그램을 실행하면 다음과 같은 결과가 출력됩니다.

Elements in SortedSet...
100
200
300
400
Does the SortedSet contains the element 500? = False

출력 결과에서 알 수 있듯이, 요소를 추가한 순서와 관계없이 SortedSet은 항상 오름차순으로 정렬하여 저장합니다. 또한 Contains() 메서드를 사용하면 특정 요소가 집합에 포함되어 있는지 확인할 수 있습니다. 위 예제에서는 집합에 없는 값인 500을 검사했으므로 False가 반환되었습니다.

예제 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("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은 중복 요소를 허용하지 않는 집합 구조이기 때문에, 이미 존재하는 값을 다시 추가하면 무시됩니다.

둘째, IsSupersetOf() 메서드를 사용하면 한 집합이 다른 집합의 상위집합(superset)인지 판별할 수 있습니다. set2에는 set1의 유일한 요소인 "CD"가 포함되어 있으므로 True가 반환되었습니다.

핵심 정리

  • 자동 정렬: 요소를 추가하면 항상 오름차순으로 정렬되어 저장됩니다.
  • 중복 불허: 동일한 요소는 하나만 저장되며, 중복 추가 시 무시됩니다.
  • Add(): 요소를 추가하는 메서드로, 이미 존재하면 false를 반환합니다.
  • Contains(): 특정 요소의 존재 여부를 빠르게 확인합니다.
  • IsSupersetOf(): 두 집합 간의 상위집합 관계를 판별합니다.