Partager via


Partitionnement des données

Le partitionnement dans LINQ fait référence à la division d'une séquence d'entrée en deux sections, sans réorganiser les éléments, puis au retour de l'une des sections.

L'illustration suivante présente les résultats de trois opérations de partitionnement différentes sur une séquence de caractères. La première opération retourne les trois premiers éléments de la séquence. La deuxième opération ignore les trois premiers éléments et retourne les éléments restants. La troisième opération ignore les deux premiers éléments de la séquence et retourne les trois éléments suivants.

Opérations de partitionnement LINQ

Les méthodes d'opérateur de requête standard qui partitionnent les séquences sont répertoriées dans la section suivante.

Opérateurs

Nom d'opérateur

Description

Syntaxe d'expression de requête C#

Syntaxe d'expression de requête Visual Basic

Informations supplémentaires

Skip

Ignore les éléments jusqu'à une position spécifiée dans une séquence.

Non applicable.

Skip

Enumerable.Skip``1

Queryable.Skip``1

SkipWhile

Ignore les éléments basés sur une fonction de prédicat jusqu'à ce qu'un élément ne satisfasse pas la condition.

Non applicable.

Skip While

Enumerable.SkipWhile

Queryable.SkipWhile``1

Take

Prend les éléments jusqu'à une position spécifiée dans une séquence.

Non applicable.

Take

Enumerable.Take``1

Queryable.Take``1

TakeWhile

Prend les éléments basés sur une fonction de prédicat jusqu'à ce qu'un élément ne satisfasse pas la condition.

Non applicable.

Take While

Enumerable.TakeWhile

Queryable.TakeWhile``1

Exemples de syntaxe d'expression de requête

Skip

L'exemple de code suivant utilise la clause Skip dans Visual Basic pour ignorer les quatre premières chaînes d'un tableau de chaînes avant de retourner les chaînes restantes dans le tableau.

        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

L'exemple de code suivant utilise la clause Skip WhileVisual Basic pour ignorer les chaînes d'un tableau dont la première lettre est un « a ». Les chaînes restantes dans le tableau sont retournées.

        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

L'exemple de code suivant utilise la clause Take dans Visual Basic pour retourner les deux premières chaînes d'un tableau de chaînes.

        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

L'exemple de code suivant utilise la clause Take While dans Visual Basic pour retourner les chaînes d'un tableau dont la longueur est inférieure ou égale à cinq.

        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

Voir aussi

Référence

Skip, clause (Visual Basic)

Skip While, clause (Visual Basic)

Take, clause (Visual Basic)

Take While, clause (Visual Basic)

System.Linq

Concepts

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