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

C# Queryable Union 메서드 – 두 시퀀스의 합집합 구하기

C#의 Queryable Union 메서드를 사용하면 두 개의 시퀀스(배열)에 대해 합집합 연산을 수행할 수 있습니다. Union 메서드는 두 시퀀스의 모든 요소를 하나로 병합하되, 중복된 값은 한 번만 포함시킵니다.

Union 메서드란?

Union은 System.Linq 네임스페이스에서 제공하는 메서드로, IQueryable 형식의 시퀀스 두 개를 결합합니다. 기본 비교자(Default Comparer)를 기준으로 중복 요소를 자동으로 제거하며, 그 결과는 IEnumerable<T> 형태로 반환됩니다.

예제 데이터 준비

다음과 같이 두 개의 정수형 배열이 있다고 가정해 보겠습니다.

int[] arr1 = { 29, 40, 15, 55, 70, 30, 90 };
int[] arr2 = { 30, 36, 40, 18, 15, 55, 75 };

Union 메서드 적용 방법

AsQueryable() 메서드로 배열을 IQueryable 형식으로 변환한 뒤, Union 메서드를 호출하면 간단하게 합집합을 구할 수 있습니다.

arr1.AsQueryable().Union(arr2);

전체 예제 코드

using System;
using System.Linq;
using System.Collections.Generic;

public class Demo {
   public static void Main() {
      int[] arr1 = { 29, 40, 15, 55, 70, 30, 90 };
      int[] arr2 = { 30, 36, 40, 18, 15, 55, 75 };

      IEnumerable<int> res = arr1.AsQueryable().Union(arr2);

      foreach (int a in res)
         Console.WriteLine("{0} ", a);
  }
}

실행 결과

29
40
15
55
70
30
90
36
18
75

결과 분석

출력 결과를 살펴보면 첫 번째 배열(arr1)의 모든 요소가 먼저 출력되고, 이후 두 번째 배열(arr2)에서 중복되지 않은 요소인 36, 18, 75만 뒤에 추가된 것을 확인할 수 있습니다. 반면 30, 40, 15, 55처럼 두 배열에 공통으로 존재하는 값은 한 번만 출력됩니다.

이처럼 Union 메서드를 활용하면 별도의 정렬이나 중복 제거 로직 없이도 두 컬렉션의 고유한 요소들을 손쉽게 통합할 수 있어, 데이터 집계나 필터링 작업에서 매우 유용하게 활용됩니다.