Trier des données (Visual Basic)
Une opération de tri ordonne les éléments d’une séquence en fonction d’un ou de plusieurs attributs. Le premier critère de tri effectue un tri principal sur les éléments. En spécifiant un deuxième critère de tri, vous pouvez trier les éléments dans chaque groupe de tri principal.
L’illustration suivante montre les résultats d’une opération de tri alphabétique sur une séquence de caractères.
Les méthodes d’opérateurs de requête standard qui trient les données sont répertoriées dans la section suivante.
Méthodes
Nom de la méthode | Description | Syntaxe de l'expression de requête en Visual Basic | Informations complémentaires |
---|---|---|---|
OrderBy | Trie les valeurs dans l’ordre croissant. | Order By |
Enumerable.OrderBy Queryable.OrderBy |
OrderByDescending | Trie les valeurs dans l’ordre décroissant. | Order By … Descending |
Enumerable.OrderByDescending Queryable.OrderByDescending |
ThenBy | Effectue un tri secondaire dans l’ordre croissant. | Order By …, … |
Enumerable.ThenBy Queryable.ThenBy |
ThenByDescending | Effectue un tri secondaire dans l’ordre décroissant. | Order By …, … Descending |
Enumerable.ThenByDescending Queryable.ThenByDescending |
Inverser | Inverse l’ordre des éléments dans une collection. | Non applicable. | Enumerable.Reverse Queryable.Reverse |
Exemples de syntaxe d'expression de requête
Exemples de tri principal
Tri principal croissant
L’exemple suivant montre comment utiliser la clause Order By
dans une requête LINQ pour trier les chaînes dans un tableau par longueur de chaîne, dans l’ordre croissant.
Dim words = {"the", "quick", "brown", "fox", "jumps"}
Dim sortQuery = From word In words
Order By word.Length
Select word
Dim sb As New System.Text.StringBuilder()
For Each str As String In sortQuery
sb.AppendLine(str)
Next
' Display the results.
MsgBox(sb.ToString())
' This code produces the following output:
' the
' fox
' quick
' brown
' jumps
Tri principal décroissant
L’exemple suivant montre comment utiliser la clause Order By Descending
dans une requête LINQ pour trier les chaînes selon leur première lettre, dans l’ordre décroissant.
Dim words = {"the", "quick", "brown", "fox", "jumps"}
Dim sortQuery = From word In words
Order By word.Substring(0, 1) Descending
Select word
Dim sb As New System.Text.StringBuilder()
For Each str As String In sortQuery
sb.AppendLine(str)
Next
' Display the results.
MsgBox(sb.ToString())
' This code produces the following output:
' the
' quick
' jumps
' fox
' brown
Exemples de tri secondaire
Tri secondaire croissant
L’exemple suivant montre comment utiliser la clause Order By
dans une requête LINQ pour effectuer un tri principal et un tri secondaire des chaînes dans un tableau. Les chaînes sont triées en premier lieu selon leur longueur, puis secondairement en fonction de la première lettre de la chaîne, chaque fois dans l’ordre croissant.
Dim words = {"the", "quick", "brown", "fox", "jumps"}
Dim sortQuery = From word In words
Order By word.Length, word.Substring(0, 1)
Select word
Dim sb As New System.Text.StringBuilder()
For Each str As String In sortQuery
sb.AppendLine(str)
Next
' Display the results.
MsgBox(sb.ToString())
' This code produces the following output:
' fox
' the
' brown
' jumps
' quick
Tri secondaire décroissant
L’exemple suivant montre comment utiliser la clause Order By Descending
dans une requête LINQ pour effectuer un tri principal dans l’ordre croissant et un tri secondaire dans l’ordre décroissant. Les chaînes sont triées en premier lieu selon leur longueur, puis secondairement en fonction de la première lettre de la chaîne.
Dim words = {"the", "quick", "brown", "fox", "jumps"}
Dim sortQuery = From word In words
Order By word.Length, word.Substring(0, 1) Descending
Select word
Dim sb As New System.Text.StringBuilder()
For Each str As String In sortQuery
sb.AppendLine(str)
Next
' Display the results.
MsgBox(sb.ToString())
' This code produces the following output:
' fox
' the
' quick
' jumps
' brown