Set Operations (Visual Basic)
Set operations in LINQ refer to query operations that produce a result set that is based on the presence or absence of equivalent elements within the same or separate collections (or sets).
The standard query operator methods that perform set operations are listed in the following section.
Methods
Method Name | Description | Visual Basic Query Expression Syntax | More Information |
---|---|---|---|
Distinct or DistinctBy | Removes duplicate values from a collection. | Distinct |
Enumerable.Distinct Enumerable.DistinctBy Queryable.Distinct Queryable.DistinctBy |
Except or ExceptBy | Returns the set difference, which means the elements of one collection that do not appear in a second collection. | Not applicable. | Enumerable.Except Enumerable.ExceptBy Queryable.Except Queryable.ExceptBy |
Intersect or IntersectBy | Returns the set intersection, which means elements that appear in each of two collections. | Not applicable. | Enumerable.Intersect Enumerable.IntersectBy Queryable.Intersect Queryable.IntersectBy |
Union or UnionBy | Returns the set union, which means unique elements that appear in either of two collections. | Not applicable. | Enumerable.Union Enumerable.UnionBy Queryable.Union Queryable.UnionBy |
Comparison of Set Operations
Distinct
The following illustration depicts the behavior of the Enumerable.Distinct method on a sequence of characters. The returned sequence contains the unique elements from the input sequence.
Except
The following illustration depicts the behavior of Enumerable.Except. The returned sequence contains only the elements from the first input sequence that are not in the second input sequence.
Intersect
The following illustration depicts the behavior of Enumerable.Intersect. The returned sequence contains the elements that are common to both of the input sequences.
Union
The following illustration depicts a union operation on two sequences of characters. The returned sequence contains the unique elements from both input sequences.
Query Expression Syntax Example
The following example uses the Distinct
clause in a LINQ query to return the unique numbers from a list of integers.
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