Order By, clause (Visual Basic)
Mise à jour : novembre 2007
Spécifie l'ordre de tri pour un résultat de requête.
Order By orderExp1 [ Ascending | Descending ] [, orderExp2 [...] ]
Éléments
- orderExp1
Obligatoire. Un ou plusieurs champs du résultat actuel de la requête identifiant la manière de classer les valeurs retournées. Les noms de champs doivent être séparés par une virgule (,). Vous pouvez identifier l'ordre de tri de chaque champ, croissant ou décroissant, en utilisant les mots clés Ascending ou Descending. Si aucun mot clé Ascending ou Descending n'est spécifié, l'ordre de tri par défaut est l'ordre croissant. La priorité des champs d'ordre de tri se fait de gauche à droite.
Notes
Vous pouvez utiliser la clause Order By pour trier les résultats d'une requête. La clause Order By ne peut trier qu'un résultat basé sur la variable de portée de la portée actuelle. Par exemple, la clause Select introduit une nouvelle portée dans une expression de requête avec de nouvelles variables d'itération pour cette portée. Les variables de portée définies avant une clause Select dans une requête ne sont pas disponibles après la clause Select. Par conséquent, si vous souhaitez classer vos résultats par champ non disponible dans la clause Select, vous devez placer la clause Order By avant la clause Select. Vous devez procéder ainsi, par exemple, lorsque vous souhaitez trier votre requête par champs non retournés dans le cadre du résultat.
L'ordre de tri croissant et décroissant d'un champ est déterminé par l'implémentation de l'interface IComparable pour le type de données du champ. Si le type de données n'implémente pas l'interface IComparable, l'ordre de tri est ignoré.
Exemple
L'expression de requête suivante utilise une clause From pour déclarer une variable de portée book pour la collection books. La clause Order By trie le résultat de la requête par prix et par ordre croissant (par défaut). Les livres de prix identique sont triés par titre et par ordre croissant. La clause Select ne sélectionne que la propriété Title en tant que valeur retournée par la requête.
Dim titlesAscendingPrice = From book In books _
Order By book.Price, book.Title _
Select book.Title, book.Price
L'expression de requête suivante utilise la clause Order By pour trier le résultat de la requête par prix et par ordre décroissant. Les livres de prix identique sont triés par titre et par ordre croissant.
Dim titlesDescendingPrice = From book In books _
Order By book.Price Descending, book.Title _
Select book.Title, book.Price
L'expression de requête suivante utilise une clause Select pour sélectionner le titre du livre, son prix, son éditeur et son auteur. Elle renseigne alors les champs Title, Price, Publisheret Author de la variable de portée pour la nouvelle portée. La clause Order By classe la nouvelle variable de portée par nom d'auteur, titre de livre, puis par prix. Chaque colonne est triée dans l'ordre par défaut (croissant).
Dim bookOrders = _
From book In books _
Select book.Title, book.Price, book.PublishDate, book.Author _
Order By Author, Title, Price
Voir aussi
Concepts
Introduction à LINQ dans Visual Basic