다음을 통해 공유


집합 작업

LINQ의 집합 작업은 같은 컬렉션 또는 별도의 컬렉션(또는 집합) 내에서 동등한 요소가 있는지 없는지에 따라 결과 집합을 생성하는 쿼리 작업을 가리킵니다.

집합 작업을 수행하는 표준 쿼리 연산자 메서드는 다음 단원에 나열되어 있습니다.

메서드

메서드 이름

설명

C# 쿼리 식 구문

Visual Basic 쿼리 식 구문

추가 정보

Distinct

컬렉션에서 중복 값을 제거합니다.

해당 사항 없음.

Distinct

Enumerable.Distinct``1

Queryable.Distinct``1

Except

한 컬렉션의 요소가 두 번째 컬렉션에서 나타나지 않음을 나타내는 차집합을 반환합니다.

해당 사항 없음.

해당 사항 없음.

Enumerable.Except``1

Queryable.Except``1

Intersect

두 컬렉션의 각각에 나타나는 요소를 의미하는 교집합을 반환합니다.

해당 사항 없음.

해당 사항 없음.

Enumerable.Intersect``1

Queryable.Intersect``1

공용 구조체

두 컬렉션 중 하나에 나타나는 고유한 요소를 의미하는 합집합을 반환합니다.

해당 사항 없음.

해당 사항 없음.

Enumerable.Union``1

Queryable.Union``1

집합 작업의 비교

Distinct

다음 그림에서는 문자 시퀀스에서의 Enumerable.Distinct``1 메서드 동작을 보여 줍니다. 반환된 시퀀스에는 입력 시퀀스의 고유한 요소가 포함됩니다.

Distinct()의 동작을 보여 주는 그래픽

Except

다음 그림에서는 Enumerable.Except``1의 동작을 보여 줍니다. 반환된 시퀀스에는 두 번째 입력 시퀀스에는 없는 첫 번째 입력 시퀀스의 요소만 포함됩니다.

Except()의 동작을 보여 주는 그래픽

Intersect

다음 그림에서는 Enumerable.Intersect``1의 동작을 보여 줍니다. 반환된 시퀀스에는 입력 시퀀스의 양쪽에 공통된 요소가 포함됩니다.

두 시퀀스의 교집합을 보여 주는 그래픽

공용 구조체

다음 그림에서는 두 문자 시퀀스에서의 합집합 연산을 보여 줍니다. 반환된 시퀀스에는 양쪽 입력 시퀀스에서 고유한 요소가 포함됩니다.

두 시퀀스의 결합을 보여주는 그래픽

쿼리 식 구문 예제

다음 예제에서는 LINQ 쿼리에서 Distinct 절(Visual Basic에서만 사용 가능)을 사용하여 정수 목록에서 고유한 숫자를 반환합니다.

        Dim classGrades = New System.Collections.Generic.List(Of Integer) From {63, 68, 71, 75, 68, 92, 75}

        Dim distinctQuery = From grade In classGrades 
                            Select grade Distinct

        Dim sb As New System.Text.StringBuilder("The distinct grades are: ")
        For Each number As Integer In distinctQuery
            sb.Append(number & " ")
        Next 

        ' Display the results.
        MsgBox(sb.ToString())

        ' This code produces the following output: 

        ' The distinct grades are: 63 68 71 75 92 

참고 항목

작업

방법: 문자열 컬렉션 결합 및 비교(LINQ)

방법: 두 목록 간의 차집합 구하기(LINQ)

참조

Distinct 절(Visual Basic)

System.Linq

개념

표준 쿼리 연산자 개요