Condividi tramite


Operazioni sui set

Le operazioni sui set in LINQ si riferiscono alle operazioni di query che generano un set di risultati basati sulla presenza o sull'assenza di elementi equivalenti all'interno delle stesse raccolte o di raccolte distinte (o set).

I metodi degli operatori di query standard che eseguono le operazioni sugli insiemi sono riportati nella sezione seguente.

Metodi

Nome metodo

Descrizione

Sintassi dell'espressione di query in C#

Sintassi dell'espressione di query in Visual Basic

Ulteriori informazioni

Distinct

Rimuove i valori duplicati da una raccolta.

Non applicabile.

Distinct

Enumerable.Distinct

Queryable.Distinct

Esclusione

Restituisce la differenza dei set, ovvero gli elementi di una raccolta che non sono presenti in una seconda raccolta.

Non applicabile.

Non applicabile.

Enumerable.Except

Queryable.Except

Intersezione

Restituisce l'intersezione dei set, ovvero gli elementi presenti in ognuna delle due raccolte.

Non applicabile.

Non applicabile.

Enumerable.Intersect

Queryable.Intersect

Unione

Restituisce l'unione dei set, ovvero gli elementi univoci presenti in una delle due raccolte.

Non applicabile.

Non applicabile.

Enumerable.Union

Queryable.Union

Confronto delle operazioni sugli insiemi

Bb546153.collapse_all(it-it,VS.110).gifDistinct

Nella figura seguente viene illustrato il comportamento del metodo Enumerable.Distinct su una sequenza di caratteri.La sequenza restituita contiene gli elementi univoci della sequenza di input.

Grafica che mostra il comportamento di Distinct()

Bb546153.collapse_all(it-it,VS.110).gifEsclusione

Nella seguente figura viene illustrato il comportamento di Enumerable.Except.La sequenza restituita contiene solo gli elementi della prima sequenza di input che non sono presenti nella seconda sequenza di input.

Grafica che mostra l'azione di Except()

Bb546153.collapse_all(it-it,VS.110).gifIntersezione

Nella seguente figura viene illustrato il comportamento di Enumerable.Intersect.La sequenza restituita contiene gli elementi che sono comuni a entrambe le sequenze di input.

Grafica che mostra l'intersezione di due sequenze

Bb546153.collapse_all(it-it,VS.110).gifUnione

Nella figura seguente viene illustrata un'operazione di unione su due sequenze di caratteri.La sequenza restituita contiene gli elementi univoci di entrambe le sequenza di input.

Grafica che mostra l'unione di due sequenze

Esempio di sintassi dell'espressione di query

Nell'esempio seguente viene utilizzata la clausola Distinct (disponibile solo in Visual Basic) in una query LINQ per restituire i numeri univoci da un elenco di numeri interi.


        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 

Vedere anche

Attività

Procedura: combinare e confrontare raccolte di stringhe (LINQ)

Procedura: trovare la differenza dei set tra due elenchi (LINQ)

Riferimenti

Clausola Distinct (Visual Basic)

System.Linq

Concetti

Cenni preliminari sugli operatori di query standard