LINQ查询表单

本文关键字:表单 查询表 查询 LINQ | 更新日期: 2023-09-27 18:09:10

我经常看到linq查询用以下两种形式写成:

形式# 1:

from t1 in table1 
where t1.SomeField == "Something"
select t1.FieldName

形式# 2:

table1.Where(c=> c.SomeField == "Something").Select(n=> new {n.FieldName})
  • 这两种形式的Linq查询有什么区别?
  • 性能是否有差异?
  • 当我搜索Linq查询教程时,我总是得到结果第一种形式,如果我想学习第二种Linq的语法下面的表格,搜索时使用什么关键字?

LINQ查询表单

第一个称为query expression,第二个称为lambda expression,它们是等价的。两种语法将编译成完全相同的代码。编译器在编译之前将查询表达式更改为等效的Lambda表达式,因此生成的IL完全相同。
还有一点:
链接的lambda语句可读性更强。

  1. 第二个是短lambda表达式
  2. 不,第二个写起来更快。
  3. 使用lamba表达式查找

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

祝你好运!

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

参考:https://msdn.microsoft.com/en-us/library/bb397687.aspx查看更多信息。

查找LINQ lambda表达式

表单# 2是实际的c#表单。

表单# 1只是为表单# 2添加了一个语法糖和查询格式。

我更喜欢Form # 2,因为它与c#代码对齐得很好。