次の方法で共有


セット操作 (Visual Basic)

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 積集合 (2 つのコレクションのそれぞれに出現する要素) を返します。 該当なし。 Enumerable.Intersect
Enumerable.IntersectBy
Queryable.Intersect
Queryable.IntersectBy
Union または UnionBy 和集合 (2 つのコレクションのどちらかに出現する一意の要素) を返します。 該当なし。 Enumerable.Union
Enumerable.UnionBy
Queryable.Union
Queryable.UnionBy

セット操作の比較

Distinct

次の図は、文字のシーケンスに対する Enumerable.Distinct メソッドの動作を示しています。 返されたシーケンスには、入力シーケンスからの一意の要素が格納されています。

Graphic showing the behavior of Distinct().

除く

Enumerable.Except の動作を次の図に示します。 返されたシーケンスには、1 つ目の入力シーケンスのうち、2 つ目の入力シーケンスには存在しない要素が格納されています。

Graphic showing the action of Except().

交差

Enumerable.Intersect の動作を次の図に示します。 返されたシーケンスには、両方の入力シーケンスに共通する要素が格納されています。

Graphic showing the intersection of two sequences.

和集合

次の図は、2 つの文字シーケンスに対する和集合演算を示しています。 返されたシーケンスには、両方の入力シーケンスからの一意の要素が格納されています。

Graphic showing the union of two sequences.

クエリ式の構文例

次の例では、LINQ クエリで Distinct 句を使用して、整数のリストから一意の数値を取得します。


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 

関連項目