Partager via


Opérations ensemblistes

Les opérations ensemblistes dans LINQ font référence aux opérations de requête qui génèrent un ensemble de résultats basé sur la présence ou l'absence d'éléments équivalents dans des collections (ou ensembles) identiques ou distinctes.

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 d'expression de requête C#

Syntaxe d'expression de requête Visual Basic

Informations supplémentaires

Distinct

Supprime des valeurs en double d'une collection.

Non applicable.

Distinct

Enumerable.Distinct

Queryable.Distinct

Except

Retourne la différence ensembliste, c'est-à-dire les éléments d'une collection qui n'apparaissent pas dans une deuxième collection.

Non applicable.

Non applicable.

Enumerable.Except

Queryable.Except

Intersect

Retourne l'intersection ensembliste, c'est-à-dire les éléments qui apparaissent dans chacune des deux collections.

Non applicable.

Non applicable.

Enumerable.Intersect

Queryable.Intersect

Union

Retourne l'union ensembliste, c'est-à-dire les éléments uniques qui apparaissent dans l'une ou l'autre des deux collections.

Non applicable.

Non applicable.

Enumerable.Union

Queryable.Union

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.

Graphique illustrant le comportement de 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 sont pas présents dans la deuxième séquence d'entrée.

Graphique montrant l'action de 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.

Graphique illustrant l'intersection de deux séquences.

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.

Graphique illustrant l'union de deux séquences.

Exemple de syntaxe d'expression de requête

L'exemple suivant utilise la clause Distinct (disponible dans Visual Basic uniquement) dans une requête LINQ pour retourner 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

Tâches

Comment : combiner et comparer des collections de chaînes (LINQ)

Comment : rechercher la différence définie entre deux listes (LINQ)

Référence

Distinct, clause (Visual Basic)

System.Linq

Concepts

Vue d'ensemble des opérateurs de requête standard