背景:在接下来的一个月里,我将会就涉及到或至少包含C#中的LINQ这一话题发表三次演讲。我想知道哪些主题值得重点关注,基于人们可能难以理解的问题,或者他们可能存在误解的问题。除了作为使用表达式树远程执行查询(通常是IQueryable)的示例外,我不会特别谈论LINQ到SQL或实体框架。
那么,你发现过什么使LINQ难以理解的问题?你看到有哪些误解?例如可以是以下任何一种情况,但请不要限制你自己!
- C#编译器如何处理查询表达式
- Lambda表达式
- 表达式树
- 扩展方法
- 匿名类型
- IQueryable
- 延迟与立即执行
- 流式与缓存执行(例如OrderBy是延迟但缓存)
- 隐式类型的局部变量
- 阅读复杂的泛型签名(例如Enumerable.Join)