Partitionnement des données (Visual Basic)
Le partitionnement dans LINQ désigne l’opération consistant à diviser une séquence d’entrée en deux sections, sans réorganiser les éléments, puis à retourner l’une des sections.
L’illustration suivante montre 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.
Les méthodes d’opérateurs de requête standard qui partitionnent des séquences sont répertoriées dans la section suivante.
Opérateurs
Nom de l’opérateur | Description | Syntaxe de l'expression de requête en Visual Basic | Informations complémentaires |
---|---|---|---|
Ignorer | Ignore les éléments jusqu’à une position spécifiée dans une séquence. | Skip |
Enumerable.Skip Queryable.Skip |
SkipWhile | Ignore les éléments basés sur une fonction de prédicat jusqu’à un élément qui ne remplit pas la condition. | Skip While |
Enumerable.SkipWhile Queryable.SkipWhile |
Take | Prend les éléments jusqu’à une position spécifiée dans une séquence. | Take |
Enumerable.Take Queryable.Take |
TakeWhile | Prend les éléments basés sur une fonction de prédicat jusqu’à un élément qui ne remplit pas la condition. | Take While |
Enumerable.TakeWhile Queryable.TakeWhile |
Bloc | Fractionne les éléments d’une séquence en blocs d’une taille maximale spécifiée. | Enumerable.Chunk Queryable.Chunk |
Exemples de syntaxe d'expression de requête
Ignorer
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 renvoyer 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 du code suivant utilise la clause Skip While
dans Visual Basic pour ignorer les chaînes d’un tableau tandis que la première lettre de la chaîne est « a ». Les chaînes restantes du tableau sont renvoyé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 du code suivant utilise la clause Take
dans Visual Basic pour renvoyer 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 du code suivant utilise la clause Take While
dans Visual Basic pour renvoyer des chaînes à partir d’un tableau tandis que la longueur de la chaîne est de cinq ou moins.
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