在 LINQ 中,集操作是指根據同一或不同集合中對等元素的存在或缺失來產生結果集的查詢操作。
執行設定作業的標準查詢運算符方法會列在下一節中。
方法
| 方法名稱 | 說明 | Visual Basic 查詢表達式語法 | 詳細資訊 |
|---|---|---|---|
| Distinct 或 DistinctBy | 移除集合中的重複值。 | Distinct |
Enumerable.Distinct Enumerable.DistinctBy Queryable.Distinct Queryable.DistinctBy |
| Except 或 ExceptBy | 傳回集合差異,也就是第一個集合中未出現在第二個集合的元素。 | 不適用。 | Enumerable.Except Enumerable.ExceptBy Queryable.Except Queryable.ExceptBy |
| Intersect 或 IntersectBy | 傳回集交集,表示出現在這兩個集合中的項目。 | 不適用。 | Enumerable.Intersect Enumerable.IntersectBy Queryable.Intersect Queryable.IntersectBy |
| Union 或 UnionBy | 傳回集聯集,表示出現在兩個集合中任一集合的唯一項目。 | 不適用。 | Enumerable.Union Enumerable.UnionBy Queryable.Union Queryable.UnionBy |
集合運算的比較
獨特的
下圖描繪Enumerable.Distinct方法在字元序列上的行為。 所傳回的序列包含輸入序列中的唯一項目。
除了
下圖描述Enumerable.Except的行為。 傳回的序列只包含第一個輸入序列中不在第二個輸入序列中的元素。
相交
下圖描述Enumerable.Intersect的行為。 所傳回的序列包含兩個輸入序列共有的項目。
聯盟
下圖描述兩個字元序列的聯集作業。 所傳回的序列包含兩個輸入序列中的唯一項目。
查詢運算式語法範例
下列範例會使用 Distinct LINQ查詢中的子句,從整數清單中傳回唯一的數位。
Dim classGrades = New System.Collections.Generic.List(Of Integer) From {63, 68, 71, 75, 68, 92, 75}
Dim distinctQuery = From grade In classGrades
Select grade Distinct
Dim sb As New System.Text.StringBuilder("The distinct grades are: ")
For Each number As Integer In distinctQuery
sb.Append(number & " ")
Next
' Display the results.
MsgBox(sb.ToString())
' This code produces the following output:
' The distinct grades are: 63 68 71 75 92