首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >LINQ查询表单

LINQ查询表单
EN

Stack Overflow用户
提问于 2015-08-21 11:46:42
回答 4查看 1.6K关注 0票数 1

我经常看到用以下任何一种形式编写的linq查询:

表格1:

代码语言:javascript
运行
复制
from t1 in table1 
where t1.SomeField == "Something"
select t1.FieldName

表格2:

代码语言:javascript
运行
复制
table1.Where(c=> c.SomeField == "Something").Select(n=> new {n.FieldName})
  • 这两种形式的Linq查询有什么区别?
  • 有什么不同的表现吗?
  • 另外,当我搜索Linq查询教程时,我总是会得到第一个表单的结果,如果我想学习下面第二个Linq表单的语法,那么搜索使用什么关键字呢?
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-08-21 11:48:19

  1. 第二种是使用简短的lambda表达式。
  2. 不,但是第二个更快。
  3. 使用lamba表达式查找它。

根据许多人的看法,第一个版本有点容易阅读。但是lambda写起来更快,我个人认为它和第一个一样清晰。

祝好运!

票数 3
EN

Stack Overflow用户

发布于 2015-08-21 11:52:13

第一个叫做query expression,第二个叫做lambda expression,它们是等价的。两种语法将编译成完全相同的代码。编译器在编译之前将查询表达式更改为等效的Lambda表达式,因此生成的IL完全相同。

还有一件事

链式羔羊的可读性要高得多。

票数 3
EN

Stack Overflow用户

发布于 2015-08-21 11:51:23

第一个表单使用查询语法,第二个表单称为lambda表达式。性能没有差别,但是第二种形式依赖于泛型委托,它使您可以更灵活地从外部层插入表达式,或者将它们作为方法参数传递。

有关更多信息,请参阅:https://msdn.microsoft.com/en-us/library/bb397687.aspx

搜索lambda表达式。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32139516

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档