다음을 통해 공유


집합 작업

업데이트: 2007년 11월

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

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

메서드

메서드 이름

설명

C# 쿼리 식 구문

Visual Basic 쿼리 식 구문

추가 정보

Distinct

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

적용할 수 없음

Distinct

Enumerable.Distinct

Queryable.Distinct

Except

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

적용할 수 없음

적용할 수 없음

Enumerable.Except

Queryable.Except

Intersect

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

적용할 수 없음

적용할 수 없음

Enumerable.Intersect

Queryable.Intersect

공용 구조체

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

적용할 수 없음

적용할 수 없음

Enumerable.Union

Queryable.Union

집합 작업의 비교

Distinct

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

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

Except

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

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

Intersect

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

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

공용 구조체

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

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

쿼리 식 구문 예제

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

Dim classGrades As New System.Collections.Generic.List(Of Integer)(New Integer() {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 

집합 작업 수행 방법에 대한 추가 정보

참고 항목

개념

표준 쿼리 연산자 개요

참조

Distinct 절(Visual Basic)

System.Linq