Aller au contenu

Opérateurs différés

Contexte : Les opérateurs différés (par exemple Where, Select, OrderBy) ne s’exécutent pas tant que la requête n’est pas énumérée. Ils retournent un IEnumerable<T>.

var deferred = numbers.Where(n => n > 2); // pas d’exécution
// L’exécution a lieu ici
foreach (var item in deferred) { }
  • Where, Select, SelectMany
  • Take, Skip
  • OrderBy, OrderByDescending, ThenBy
  • GroupBy, Join, GroupJoin
  • Concat, Distinct, Union, Intersect, Except

Composition de requêtes complexes : L’exécution différée permet de construire des requêtes conditionnellement sans pénalité de performance jusqu’à l’énumération finale.

Exemple : Dans EF Core, tous les opérateurs IQueryable sont différés jusqu’à ToList() ou foreach.