セット操作

LINQ のセット操作は、同一または別個のコレクション (またはセット) 内に等しい要素があるかどうかに基づいて、結果を生成するクエリ操作です。

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

メソッド

メソッド名

Description

C# のクエリ式の構文

Visual Basic のクエリ式の構文

詳細情報

Distinct

コレクションから重複する値を削除します。

該当なし

Distinct

Enumerable.Distinct``1

Queryable.Distinct``1

Except

差集合 (一方のコレクションにだけ存在し、もう一方のコレクションには出現しない要素) を返します。

該当なし

該当なし

Enumerable.Except``1

Queryable.Except``1

Intersect

積集合 (2 つのコレクションのそれぞれに出現する要素) を返します。

該当なし

該当なし

Enumerable.Intersect``1

Queryable.Intersect``1

共用体

和集合 (2 つのコレクションのどちらかに出現する一意の要素) を返します。

該当なし

該当なし

Enumerable.Union``1

Queryable.Union``1

セット操作の比較

Distinct

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

Distinct() の動作を示すグラフィック。

Except

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

Except() のアクションを示すグラフィック。

Intersect

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

2 つのシーケンスの交差部分を示すグラフィック。

共用体

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

2 つのシーケンスの結合を示すグラフィック。

クエリ式の構文の例

LINQ クエリで Distinct 句 (Visual Basic でのみ使用可能) を使用して、整数のリストから一意の数値を返す例を次に示します。

        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 

参照

処理手順

方法: 文字列コレクションを結合および比較する (LINQ)

方法 : 2 つのリストの差集合を見つける (LINQ)

関連項目

Distinct 句 (Visual Basic)

System.Linq

概念

標準クエリ演算子の概要