セット操作 (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 メソッドの動作を示しています。 返されたシーケンスには、入力シーケンスからの一意の要素が格納されています。
除く
Enumerable.Except の動作を次の図に示します。 返されたシーケンスには、1 つ目の入力シーケンスのうち、2 つ目の入力シーケンスには存在しない要素が格納されています。
交差
Enumerable.Intersect の動作を次の図に示します。 返されたシーケンスには、両方の入力シーケンスに共通する要素が格納されています。
和集合
次の図は、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
関連項目
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET