セット操作
更新 : 2007 年 11 月
LINQ のセット操作は、同一または別個のコレクション (またはセット) 内に等しい要素があるかどうかに基づいて、結果を生成するクエリ操作です。
次のセクションに、セット操作を実行する標準クエリ演算子のメソッドの一覧を示します。
メソッド
メソッド名 |
説明 |
C# のクエリ式の構文 |
Visual Basic のクエリ式の構文 |
詳細情報 |
---|---|---|---|---|
Distinct |
コレクションから重複する値を削除します。 |
適用できません。 |
Distinct |
|
Except |
差集合 (一方のコレクションにだけ存在し、もう一方のコレクションには出現しない要素) を返します。 |
適用できません。 |
適用できません。 |
|
Intersect |
積集合 (2 つのコレクションのそれぞれに出現する要素) を返します。 |
適用できません。 |
適用できません。 |
|
Union |
和集合 (2 つのコレクションのどちらかに出現する一意の要素) を返します。 |
適用できません。 |
適用できません。 |
セット操作の比較
Distinct
次の図は、文字のシーケンスに対する Enumerable.Distinct メソッドの動作を示しています。返されたシーケンスには、入力シーケンスからの一意の要素が格納されています。
Except
次の図は、Enumerable.Except の動作を示しています。返されたシーケンスには、1 つ目の入力シーケンスのうち、2 つ目の入力シーケンスには存在しない要素が格納されています。
Intersect
次の図は、Enumerable.Intersect の動作を示しています。返されたシーケンスには、両方の入力シーケンスに共通する要素が格納されています。
Union
次の図は、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 |