Chargement de ta page…
Maîtriser les requêtes LINQ en C# .NET (Where, Select, OrderBy)
Interrogez, filtrez et transformez vos collections en C# avec élégance grâce à LINQ (Language Integrated Query).
Publié par Projet Carthage · Mis à jour le
Explications & Fondations Techniques
LINQ (Language Integrated Query) unifie la syntaxe de requêtage pour les collections en mémoire, les bases SQL (Entity Framework) et les flux XML/JSON.
La plupart des opérateurs LINQ utilisent l'exécution différée (deferred execution) : la requête n'est exécutée que lorsque vous itérez sur le résultat (ex: boucle `foreach` ou appel à `.ToList()`).
`Where()` filtre les éléments, `Select()` projette et transforme, et `OrderBy()` trie selon un critère.
Exemple de Code Pratique
Essayer cet exempleusing System;
using System.Collections.Generic;
using System.Linq;
public class Developpeur {
public string Nom { get; set; }
public string Langage { get; set; }
public int AnneesExperience { get; set; }
}
public class Program {
public static void Main() {
var devs = new List<Developpeur> {
new Developpeur { Nom = "Alice", Langage = "C#", AnneesExperience = 5 },
new Developpeur { Nom = "Bob", Langage = "Python", AnneesExperience = 2 },
new Developpeur { Nom = "Charlie", Langage = "C#", AnneesExperience = 8 },
};
// Requête LINQ élégante en Method Syntax
var seniorsCSharp = devs
.Where(d => d.Langage == "C#" && d.AnneesExperience >= 5)
.OrderByDescending(d => d.AnneesExperience)
.Select(d => $"{d.Nom} ({d.AnneesExperience} ans)")
.ToList();
foreach (var dev in seniorsCSharp) {
Console.WriteLine(dev);
}
}
}Pièges Fréquents & Mauvaises Pratiques
Multiplier les .ToList() inutiles dans une chaîne de méthodes
var res = list.ToList().Where(x => x > 5).ToList().Select(x => x * 2).ToList();var res = list.Where(x => x > 5).Select(x => x * 2).ToList();Chaque `.ToList()` alloue une nouvelle liste en mémoire. Laissez LINQ combiner les opérations avant de matérialiser une seule fois à la fin.
Questions Fréquentes
Qu'est-ce que l'exécution différée (deferred execution) en LINQ ?▾
Cela signifie que la requête ne s'exécute pas lors de sa déclaration, mais seulement lorsqu'on accède réellement à ses données (par exemple avec un `foreach`, `.ToList()` ou `.Count()`).
Maîtrisez C# pas à pas
Résolvez des défis interactifs directement dans votre navigateur avec retour immédiat et indices progressifs.
