Background: Over the next month, I'll be giving three talks about or at least including LINQ
in the context of C#
. I'd like to know which topics are worth giving a fair amount of attention to, based on what people may find hard to understand, or what they may have a mistaken impression of. I won't be specifically talking about LINQ
to SQL
or the Entity Framework except as examples of how queries can be executed remotely using expression trees (and usually IQueryable
).
So, what have you found hard about LINQ
? What have you seen in terms of misunderstandings? Examples might be any of the following, but please don't limit yourself!
- How the
C#
compiler treats query expressions - Lambda expressions
- Expression trees
- Extension methods
- Anonymous types
IQueryable
- Deferred vs immediate execution
- Streaming vs buffered execution (e.g. OrderBy is deferred but buffered)
- Implicitly typed local variables
- Reading complex generic signatures (e.g. Enumerable.Join)