次の方法で共有


Set Operations (Visual Basic)

LINQ のセット操作は、同じコレクションまたは個別のコレクション (またはセット) 内の同等の要素の有無に基づいて結果セットを生成するクエリ操作を指します。

セット操作を実行する標準のクエリ演算子メソッドを次のセクションに示します。

メソッド

メソッド名 説明 Visual Basic のクエリ式の構文 詳細情報
Distinct または DistinctBy コレクションから重複する値を削除します。 Distinct Enumerable.Distinct
Enumerable.DistinctBy
Queryable.Distinct
Queryable.DistinctBy
Except または ExceptBy セットの差を返します。これは、2 番目のコレクションに表示されない 1 つのコレクションの要素を意味します。 適用されません。 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

Set 操作の比較

明確

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

Distinct() の動作を示す図。

除く

次の図は、 Enumerable.Exceptの動作を示しています。 返されるシーケンスには、2 番目の入力シーケンスに含まれていない最初の入力シーケンスの要素のみが含まれます。

Except() のアクションを示す図。

交差する

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

2 つのシーケンスの交差部分を示す図。

結合

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

2 つのシーケンスの和集合を示す図。

クエリ式の構文例

次の例では、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 

こちらも参照ください