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>에서는 IsSubsetOf 및 IsSupersetOf와 같은 비교를 제공합니다.
일반적으로 새 집합을 만들어야 하거나 응용 프로그램에서 제공된 작업 집합에만 액세스해야 하는 경우 모든 IEnumerable<T> 컬렉션 또는 배열에 대해 LINQ 집합 작업을 사용하는 것으로도 충분합니다. 그러나 응용 프로그램에서 추가 집합 작업에 액세스해야 하거나 새 컬렉션을 만드는 것이 적합하지 않거나 필요하지 않은 경우에는 HashSet<T> 클래스를 사용합니다.
HashSet<T> 및 LINQ 집합 작업
다음 표에서는 HashSet<T> 작업 및 이에 해당하는 LINQ 집합 작업을 보여 줍니다.
HashSet(Of T) 작업 |
이에 해당하는 LINQ 작업 |
---|---|
제공되지 않음 |
|
제공되지 않음 |
|
제공되지 않음 |
|
제공되지 않음 |
|
제공되지 않음 |
|
제공되지 않음 |
|
제공되지 않음 |
|
제공되지 않음 |