Opérations ensemblistes (Visual Basic)

Les opérations ensemblistes dans LINQ font référence à des opérations de requête qui génèrent un jeu de résultats basé sur la présence ou l’absence d’éléments équivalents dans la même collection (ou le même ensemble) ou dans une collection distincte (ou un ensemble distinct).

Les méthodes d’opérateur de requête standard qui effectuent des opérations ensemblistes sont répertoriées dans la section suivante.

Méthodes

Nom de la méthode Description Syntaxe de l'expression de requête en Visual Basic Informations complémentaires
Distinct ou DistinctBy Supprime les valeurs en double d’une collection. Distinct Enumerable.Distinct
Enumerable.DistinctBy
Queryable.Distinct
Queryable.DistinctBy
Except ou ExceptBy Retourne la différence ensembliste, à savoir les éléments d’une collection qui n’apparaissent pas dans une seconde collection. Non applicable. Enumerable.Except
Enumerable.ExceptBy
Queryable.Except
Queryable.ExceptBy
Intersect ou IntersectBy Retourne l’intersection ensembliste, à savoir les éléments qui apparaissent dans chacune des deux collections. Non applicable. Enumerable.Intersect
Enumerable.IntersectBy
Queryable.Intersect
Queryable.IntersectBy
Union ou UnionBy Retourne l’union ensembliste, à savoir les éléments uniques qui apparaissent dans l’une ou l’autre des deux collections. Non applicable. Enumerable.Union
Enumerable.UnionBy
Queryable.Union
Queryable.UnionBy

Comparaison d’opérations ensemblistes

Distinct

L’illustration suivante représente le comportement de la méthode Enumerable.Distinct sur une séquence de caractères. La séquence retournée contient les éléments uniques de la séquence d’entrée.

Graphic showing the behavior of Distinct().

Except

L’illustration suivante représente le comportement de Enumerable.Except. La séquence retournée contient uniquement les éléments de la première séquence d’entrée qui ne figurent pas dans la seconde séquence d’entrée.

Graphic showing the action of Except().

Intersect

L’illustration suivante représente le comportement de Enumerable.Intersect. La séquence retournée contient les éléments qui sont communs aux deux séquences d’entrée.

Graphic showing the intersection of two sequences.

Union

L’illustration suivante représente une opération d’union sur deux séquences de caractères. La séquence retournée contient les éléments uniques des deux séquences d’entrée.

Graphic showing the union of two sequences.

Exemple de syntaxe d’expression de requête

L’exemple suivant utilise la clause Distinct dans une requête LINQ pour renvoyer les nombres uniques d’une liste d’entiers.


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 

Voir aussi