HashSet 和 LINQ 設定作業

本主題會比較 HashSet<T> 作業和 Language-Integrated Query (LINQ) 設定作業。

LINQ 設定作業

LINQ 可提供存取任何實作 IEnumerableIQueryable 介面之資料來源的某些設定作業。 包括陣列和集合。

LINQ 所提供的設定作業如下:

  • Distinct

  • Union

  • 交集

  • Except

如需 LINQ 的詳細資訊,請參閱 LINQ (Language-Integrated Query)平行 LINQ (PLINQ)。 如需 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 集合類型

平行 LINQ (PLINQ)

設定作業

其他資源

LINQ (Language-Integrated Query)

常用的集合類型