Utiliser LINQ pour trier une liste
var list = new List { 3, 5, 1, 4, 2 };
Nous voulons ordonner cette liste par ordre croissant. Nous pourrions créer une méthode pour cela, pourquoi pas même une méthode d’extension. Mais ce serait une perte de temps inutile. Voici comment faire :
var orderedList = list.OrderBy(i => i);
Et hop ! Ça tient en une ligne de code.
Voici un autre exemple pour expliquer le fonctionnement :
class Person
{
public int Age { get; private set; }
public Person(int age)
{
this.Age = age;
}
}
// ...
var list = new List<Person> { new Person(32), new Person(16), new Person(22) };
var orderedList = list.OrderBy(person => person.Age);
Ici, ça correspond à “pour tout élément noté person dans cette liste, je la trie en fonction de son âge”.
Une syntaxe équivalente aurait été :
var list = new List<Person> { new Person(32), new Person(16), new Person(22) };
var orderedList = from person in list
orderby person.Age
select person;