LINQ最难或最容易被误解的方面是什么?

背景:在接下来的一个月,我会给出约或至少包括三名会谈LINQ的背景下C#。我想根据人们可能难以理解的内容或对他们的错误印象来确定哪些主题值得关注。我不会特别谈论LINQSQL或实体框架除了作为如何查询可以远程使用表达式树(通常被执行的例子IQueryable)。

那么,您发现了什么困难LINQ呢?您对误解有何见解?示例可能是以下任何一种,但请不要限制自己!

  • C#编译器如何处理查询表达式

  • Lambda表达式

  • 表达树

  • 扩展方式

  • 匿名类型

  • IQueryable

  • 延迟执行与立即执行

  • 流与缓冲执行(例如,将OrderBy延迟但缓冲)

  • 隐式类型的局部变量

  • 读取复杂的通用签名(例如Enumerable.Join)


侃侃无极
浏览 321回答 3
3回答

ibeautiful

执行延迟

慕哥9229398

把我的方式很长时间才意识到,很多LINQ扩展方法,如Single(),SingleOrDefault()等有需要lambda表达式重载。你可以做 :Single(x => x.id == id)不用这么说-一些不好的教程让我养成了这样做的习惯Where(x => x.id == id).Single()
打开App,查看更多内容
随时随地看视频慕课网APP