다음을 통해 공유


HashSet 및 LINQ 집합 작업

이 항목에서는 HashSet<T> 작업과 LINQ(통합 언어 쿼리) 집합 작업을 비교합니다.

LINQ 집합 작업

LINQ를 사용하면 IEnumerable 또는 IQueryable 인터페이스를 구현하는 데이터 소스에 대한 일부 집합 작업에 액세스할 수 있습니다. 여기에는 배열 및 컬렉션이 포함됩니다.

LINQ에서 제공하는 집합 작업은 다음과 같습니다.

  • Distinct

  • Union

  • Intersect

  • Except

LINQ에 대한 자세한 내용은 LINQ(통합 언어 쿼리)PLINQ(병렬 LINQ)를 참조하십시오. LINQ 집합 작업에 대한 자세한 내용은 집합 작업을 참조하십시오.

HashSet<T>를 사용하는 경우

LINQ 집합 작업과 HashSet<T> 작업의 주요 차이점은 LINQ 집합 작업에서는 항상 새 IEnumerable<T> 컬렉션을 반환하는 반면 이에 상응하는 HashSet<T> 메서드에서는 현재 컬렉션을 수정한다는 데 있습니다. HashSet<T>에서는 더 크고 더 강력한 집합 작업 컬렉션을 제공합니다. 예를 들어 HashSet<T>에서는 IsSubsetOfIsSupersetOf와 같은 비교를 제공합니다.

일반적으로 새 집합을 만들어야 하거나 응용 프로그램에서 제공된 작업 집합에만 액세스해야 하는 경우 모든 IEnumerable<T> 컬렉션 또는 배열에 대해 LINQ 집합 작업을 사용하는 것으로도 충분합니다. 그러나 응용 프로그램에서 추가 집합 작업에 액세스해야 하거나 새 컬렉션을 만드는 것이 적합하지 않거나 필요하지 않은 경우에는 HashSet<T> 클래스를 사용합니다.

HashSet<T> 및 LINQ 집합 작업

다음 표에서는 HashSet<T> 작업 및 이에 해당하는 LINQ 집합 작업을 보여 줍니다.

HashSet(Of T) 작업

이에 해당하는 LINQ 작업

UnionWith

Union

IntersectWith

Intersect

ExceptWith

Except

제공되지 않음

Distinct

SymmetricExceptWith

제공되지 않음

Overlaps

제공되지 않음

IsSubsetOf

제공되지 않음

IsProperSubsetOf

제공되지 않음

IsSupersetOf

제공되지 않음

IsProperSupersetOf

제공되지 않음

SetEquals

제공되지 않음

참고 항목

참조

HashSet<T>

개념

HashSet 컬렉션 형식

PLINQ(병렬 LINQ)

집합 작업

일반적으로 사용되는 컬렉션 형식

기타 리소스

LINQ(통합 언어 쿼리)