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

C#에서 SortedSet과 지정된 컬렉션 간의 공통 요소 존재 여부 확인하기

C#에서 SortedSet과 특정 컬렉션이 서로 공통된 요소를 가지고 있는지 확인해야 하는 경우가 있습니다. 이럴 때 사용할 수 있는 것이 바로 Overlaps() 메서드입니다.

Overlaps() 메서드는 현재 SortedSet과 지정된 컬렉션 사이에 최소 하나 이상의 공통 요소가 존재하는지 판단합니다. 공통 요소가 있으면 true, 없으면 false를 반환합니다.

Overlaps() 메서드의 기본 문법

public bool Overlaps (System.Collections.Generic.IEnumerable<T> other);

매개변수 other에는 현재 집합과 비교할 컬렉션을 전달하며, 반환값은 두 컬렉션이 공통 요소를 공유하는지 여부를 나타내는 불리언(Boolean) 값입니다.

예제 1: 공통 요소가 있는 경우

다음 예제에서는 두 개의 SortedSet을 생성하고 동일한 요소들을 추가한 뒤, Overlaps() 메서드로 공통 요소 존재 여부를 확인합니다.

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);
        set1.Add(500);
        set1.Add(600);
        SortedSet<int> set2 = new SortedSet<int>();
        set2.Add(100);
        set2.Add(200);
        set2.Add(300);
        set2.Add(400);
        set2.Add(500);
        set2.Add(600);
        Console.WriteLine("공통 요소가 존재합니까? = " + set1.Overlaps(set2));
    }
}

출력 결과

공통 요소가 존재합니까? = True

두 집합이 100부터 600까지 모든 요소를 공유하고 있으므로 결과는 True가 출력됩니다.

예제 2: 공통 요소가 없는 경우

이번에는 서로 다른 값을 가진 두 개의 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);
        SortedSet<int> set2 = new SortedSet<int>();
        set2.Add(450);
        set2.Add(550);
        set2.Add(650);
        set2.Add(750);
        set2.Add(800);
        Console.WriteLine("공통 요소가 존재합니까? = " + set1.Overlaps(set2));
    }
}

출력 결과

공통 요소가 존재합니까? = False

set1에는 100~300 사이의 값이, set2에는 450~800 사이의 값이 저장되어 있어 두 집합 사이에 겹치는 요소가 전혀 없습니다. 따라서 결과는 False가 됩니다.

정리

C#의 SortedSet<T>.Overlaps() 메서드는 두 컬렉션 간의 교집합 존재 여부를 빠르고 간편하게 확인할 수 있는 유용한 도구입니다. 별도의 반복문을 작성하지 않고도 한 줄의 코드로 공통 요소 검사를 수행할 수 있어 코드의 가독성과 효율성을 높여줍니다.