HashSet 和 LINQ 設定作業
本主題會比較 HashSet<T> 作業和 Language-Integrated Query (LINQ) 設定作業。
LINQ 設定作業
LINQ 可提供存取任何實作 IEnumerable 或 IQueryable 介面之資料來源的某些設定作業。 包括陣列和集合。
LINQ 所提供的設定作業如下:
相異
聯集
交集
除外
如需 LINQ 的詳細資訊,請參閱 LINQ (Language-Integrated Query)和 平行 LINQ (PLINQ)。 如需 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 對等用法 |
---|---|
不提供 |
|
不提供 |
|
不提供 |
|
不提供 |
|
不提供 |
|
不提供 |
|
不提供 |
|
不提供 |