[Linq] Obtenir le dernier élément d’une liste d’objet
Dernièrement je cherchais à obtenir le dernier élément d’une liste d’objet avec Linq (Language Integrated Query) dans Visual Studio.
Pour cela on a la chance d’avoir les Opérateurs d’éléments (Element Operators ) avec linq et plus particulièrement l’opérateur Last(). Par contre il ne faut pas le confondre avec l’opérateur d’agrégation Max() (Aggregate Operators ) qui renvoie l’élément ayant la valeur max. (Ce qui peut éventuellement marcher si on recherche le dernier ID d’une liste par exemple).
Utiliser Max() sur une liste d’objet obligera à implémenter une méthode de comparaison IComparable.
List.Last()
nous retournera le dernier élément de la liste.
- Exemple 1: Liste d’entier (List
List<int> numbers = new List<int>(){ 1, 9, 2, 3, 8, 5, 6, 7, 3, 0 }; int LastInt = numbres.Last(); Console.WriteLine("Le dernier chiffre est {0}.", LastInt ); //=> Le dernier chiffre est 0 int MaxInt = numbres.Max(); Console.WriteLine("Le chiffre max est {0}.", MaxInt ); // => Le chiffre max est 9 |
- Exemple 2: Liste d’objet (List
//On a une classe Joueur.cs avec une propriété Nom. List<Joueur> mesjoueurs = new List<Joueur>(); Joueur JoueurA = new Joueur("Arnaud"); mesjoueurs.add(JoueurA); Joueur JoueurB = new Joueur("Leelou"); mesjoueurs.add(JoueurB); Console.WriteLine("Le dernier joueur est {0}.", mesjoueurs.Last().Nom); //=> " Le dernier joueur est Leelou" Console.WriteLine("Le joueur max est {0}.", mesjoueurs.Max()); //=> At least one object must implement IComparable. |
Un petit article sur la programmation en C# pour la route?
- [SQL] Obtenir la valeur de l’Identifiant de la dernière insertion
- MSDN, pour apprendre à coder en C#