Condividi tramite


Partizionamento dei dati

Il partizionamento in LINQsi riferisce all'operazione di divisione di una sequenza di input in due sezioni, senza ridisporre gli elementi e restituendo quindi una delle sezioni.

Nella figura seguente vengono illustrati i risultati di tre diverse operazioni di partizionamento su una sequenza di caratteri. La prima operazione restituisce i primi tre elementi della sequenza. La seconda operazione ignora i primi tre elementi e restituisce gli elementi rimanenti. La terza operazione ignora i primi due elementi della sequenza e restituisce i tre elementi successivi.

Operazioni di partizionamento LINQ

I metodi degli operatori di query standard che partizionano le sequenze sono riportati nella sezione seguente.

Operatori

Nome dell'operatore

Descrizione

Sintassi dell'espressione di query in C#

Sintassi dell'espressione di query in Visual Basic

Ulteriori informazioni

Skip

Ignora gli elementi fino a una posizione specificata in una sequenza.

Non applicabile.

Skip

Enumerable.Skip<TSource>

Queryable.Skip<TSource>

SkipWhile

Ignora gli elementi in base a una funzione predicativa finché un elemento non soddisfa la condizione.

Non applicabile.

Skip While

Enumerable.SkipWhile

Queryable.SkipWhile

Take

Accetta gli elementi fino a una posizione specificata in una sequenza.

Non applicabile.

Take

Enumerable.Take<TSource>

Queryable.Take<TSource>

TakeWhile

Accetta gli elementi in base a una funzione predicativa finché un elemento non soddisfa la condizione.

Non applicabile.

Take While

Enumerable.TakeWhile

Queryable.TakeWhile

Esempi di sintassi dell'espressione di query

Skip

Nell'esempio di codice seguente viene utilizzata la clausola Skip in Visual Basic per ignorare le prime quattro stringhe in una matrice di stringhe prima di restituire le stringhe rimanenti della matrice.


        Dim words = {"an", "apple", "a", "day", "keeps", "the", "doctor", "away"}

        Dim query = From word In words 
                    Skip 4

        Dim sb As New System.Text.StringBuilder()
        For Each str As String In query
            sb.AppendLine(str)
        Next

        ' Display the results.
        MsgBox(sb.ToString())

        ' This code produces the following output:

        ' keeps
        ' the
        ' doctor
        ' away

SkipWhile

Nell'esempio di codice seguente viene utilizzata la clausola Skip While in Visual Basic per ignorare le stringhe in una matrice quando la prima lettera della stringa è "a". Vengono restituite le stringhe rimanenti nella matrice.


        Dim words = {"an", "apple", "a", "day", "keeps", "the", "doctor", "away"}

        Dim query = From word In words 
                    Skip While word.Substring(0, 1) = "a"

        Dim sb As New System.Text.StringBuilder()
        For Each str As String In query
            sb.AppendLine(str)
        Next

        ' Display the results.
        MsgBox(sb.ToString())

        ' This code produces the following output:

        ' day
        ' keeps
        ' the
        ' doctor
        ' away

Take

Nell'esempio di codice seguente viene utilizzata la clausola Take in Visual Basic per restituire le prime due stringhe in una matrice di stringhe.


        Dim words = {"an", "apple", "a", "day", "keeps", "the", "doctor", "away"}

        Dim query = From word In words 
                    Take 2

        Dim sb As New System.Text.StringBuilder()
        For Each str As String In query
            sb.AppendLine(str)
        Next

        ' Display the results.
        MsgBox(sb.ToString())

        ' This code produces the following output:

        ' an
        ' apple

TakeWhile

Nell'esempio di codice seguente viene utilizzata la clausola Take While in Visual Basic per restituire le stringhe da una matrice quando la il valore della lunghezza della stringa è pari a cinque o inferiore.


        Dim words = {"an", "apple", "a", "day", "keeps", "the", "doctor", "away"}

        Dim query = From word In words 
                    Take While word.Length < 6

        Dim sb As New System.Text.StringBuilder()
        For Each str As String In query
            sb.AppendLine(str)
        Next

        ' Display the results.
        MsgBox(sb.ToString())

        ' This code produces the following output:

        ' an
        ' apple
        ' a
        ' day
        ' keeps
        ' the

Vedere anche

Riferimenti

Clausola Skip (Visual Basic)

Clausola Skip While (Visual Basic)

Clausola Take (Visual Basic)

Clausola Take While (Visual Basic)

System.Linq

Concetti

Cenni preliminari sugli operatori di query standard