Partager via


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.

Graphic that shows an alphabetical sort operation.

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

Voir aussi