본문 바로가기
C#

[C#] 링크(LINQ) - 집합 연산자 Distinct, Union, Intersect, Except

by 코모's 2023. 7. 20.
반응형

집합 연산자란?

집합 연산자는 두 집합 간에 관계를 활용하는 연산자이다.

 

Distinct()

Distinct 메서드는 집합 내에 중복 요소를 제거하기 위해 사용된다.

int[] factorsOf300 = { 2, 2, 3, 5, 5 };

var uniqueFactors = factorsOf300.Distinct();

// uniqueFactors = { 2, 3, 5 };

 

Union()

Union 메서드는 두 집합을 각 원소가 중복되지 않도록 더한 새로운 집합을 만들때 사용된다.

            int[] numbersA = { 0, 2, 4, 5, 6, 8, 9 };
            int[] numbersB = { 1, 3, 5, 7, 8 };

            var uniqueNumbers = numbersA.Union(numbersB);

            // uniqueNumbers = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };

 

Intersect()

Intersect 메서드는 두 집합에서 중복되는 원소만 모아서 새로운 집합을 만들때 사용된다.

int[] numbersA = { 0, 2, 4, 5, 6, 8, 9 };
int[] numbersB = { 1, 3, 5, 7, 8 };

var commonNumbers = numbersA.Intersect(numbersB);

// commonNumbers = { 5 , 8 };

 

Except()

Except 메서드는 기준이 되는 A집합에만 존재하며 B집합에 존재하지 않는 원소만 모아서 새로운 집합을 만들때 사용된다.

int[] numbersA = { 0, 2, 4, 5, 6, 8, 9 };
int[] numbersB = { 1, 3, 5, 7, 8 };

IEnumerable<int> aOnlyNumbers = numbersA.Except(numbersB);

// aOnlyNumbers = { 0, 2, 4, 6, 9 } ;

 

반응형