共用方式為


HashSet 和 LINQ 設定作業

更新:2007 年 11 月

本主題會比較 HashSet<T> 作業和語言-整合式查詢 (LINQ) 設定作業。

LINQ 設定作業

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

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

  • 相異

  • 等位

  • 交集

  • 除外

如需有關 LINQ 的詳細資訊,請參閱Language-Integrated Query (LINQ)。如需 LINQ 設定作業的詳細資訊,請參閱設定作業

何時使用 HashSet&lt;T&gt;

LINQ 設定作業與 HashSet<T> 作業的主要差異在於,LINQ 設定作業永遠會傳回一個新的 IEnumerable<T> 集合,而 HashSet<T> 對等方法則會修改目前的集合。HashSet<T> 提供更大、更穩定的設定作業集合。例如 HashSet<T> 會提供如 IsSubsetOfIsSupersetOf 之間的比較。

一般而言,如果您必須建立新的設定,或如果應用程式只需要存取提供的設定作業,則在任何 IEnumerable<T> 集合或陣列上使用 LINQ 設定作業就夠了。但是,如果您的應用程式需要存取其他設定作業,或如果不建議或不需要建立新的集合,請使用 HashSet<T> 類別。

HashSet&lt;T&gt; 和 LINQ 設定作業

下表顯示 HashSet<T> 作業及其對等的 LINQ 設定作業。

HashSet(Of T) 作業

LINQ 對等用法

UnionWith

Union

IntersectWith

Intersect

ExceptWith

Except

不提供

Distinct

SymmetricExceptWith

不提供。

Overlaps

不提供。

IsSubsetOf

不提供。

IsProperSubsetOf

不提供。

IsSupersetOf

不提供。

IsProperSupersetOf

不提供。

SetEquals

不提供。

請參閱

概念

HashSet 集合型別

設定作業

參考

HashSet<T>

其他資源

Language-Integrated Query (LINQ)

常用的集合型別