Partager via


Tri 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.

Graphique montrant une opération de tri alphabétique.

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 Descriptif Syntaxe de l’expression de requête Visual Basic Plus d’informations
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 principaux

Tri principal croissant

L’exemple suivant montre comment utiliser la Order By clause dans une requête LINQ pour trier les chaînes d’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 Order By Descending clause dans une requête LINQ pour trier les chaînes par 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 secondaires

Tri secondaire croissant

L’exemple suivant montre comment utiliser la Order By clause dans une requête LINQ pour effectuer un tri principal et secondaire des chaînes d’un tableau. Les chaînes sont triées principalement par longueur et secondairement par la première lettre de la chaîne, 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 principalement par longueur et secondairement par 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