Contexte: Au cours du mois prochain, je donnerai trois conférences sur ou du moins LINQ
dans le contexte de C#
. J'aimerais savoir quels sujets méritent une attention particulière en fonction de ce que les gens peuvent avoir du mal à comprendre ou de ce qu'ils peuvent avoir une impression erronée. Je ne parlerai pas spécifiquement LINQ
de SQL
ou de l'Entity Framework, sauf en tant qu'exemples de la façon dont les requêtes peuvent être exécutées à distance à l'aide d'arbres d'expression (et généralement IQueryable
).
Alors, qu'est-ce que vous avez trouvé difficile LINQ
? Qu'avez-vous vu en termes de malentendus? Les exemples peuvent être les suivants, mais ne vous limitez pas!
- Comment le
C#
compilateur traite les expressions de requête - Expressions lambda
- Arbres d'expression
- Méthodes d'extension
- Types anonymes
IQueryable
- Exécution différée vs exécution immédiate
- Streaming vs exécution tamponnée (par exemple OrderBy est différé mais tamponné)
- Variables locales implicitement typées
- Lecture de signatures génériques complexes (par exemple Enumerable.Join )