セット操作

更新 : 2007 年 11 月

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

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

メソッド

メソッド名

説明

C# のクエリ式の構文

Visual Basic のクエリ式の構文

詳細情報

Distinct

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

適用できません。

Distinct

Enumerable.Distinct

Queryable.Distinct

Except

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

適用できません。

適用できません。

Enumerable.Except

Queryable.Except

Intersect

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

適用できません。

適用できません。

Enumerable.Intersect

Queryable.Intersect

Union

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

適用できません。

適用できません。

Enumerable.Union

Queryable.Union

セット操作の比較

Distinct

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

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

Except

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

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

Intersect

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

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

Union

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

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

クエリ式の構文の例

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

Dim classGrades As New System.Collections.Generic.List(Of Integer)(New Integer() {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 

セット操作の実行方法に関する詳細情報

Topic Location
方法 : 2 つのリストの差集合を見つける (LINQ) 統合言語クエリ (LINQ: Language-Integrated Query)
方法 : 文字列コレクションを結合および比較する (LINQ) 統合言語クエリ (LINQ: Language-Integrated Query)
方法 : 2 つのリストの差集合を見つける (LINQ) dv_Linq
方法: 文字列コレクションを結合および比較する (LINQ) dv_Linq
方法 : 2 つのリストの差集合を見つける (LINQ) dv_Linq
方法: 文字列コレクションを結合および比較する (LINQ) dv_Linq

参照

概念

標準クエリ演算子の概要

参照

Distinct 句 (Visual Basic)

System.Linq