我经常看到用以下任何一种形式编写的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})发布于 2015-08-21 11:48:19
根据许多人的看法,第一个版本有点容易阅读。但是lambda写起来更快,我个人认为它和第一个一样清晰。
祝好运!
发布于 2015-08-21 11:52:13
第一个叫做query expression,第二个叫做lambda expression,它们是等价的。两种语法将编译成完全相同的代码。编译器在编译之前将查询表达式更改为等效的Lambda表达式,因此生成的IL完全相同。
还有一件事
链式羔羊的可读性要高得多。
发布于 2015-08-21 11:51:23
第一个表单使用查询语法,第二个表单称为lambda表达式。性能没有差别,但是第二种形式依赖于泛型委托,它使您可以更灵活地从外部层插入表达式,或者将它们作为方法参数传递。
有关更多信息,请参阅:https://msdn.microsoft.com/en-us/library/bb397687.aspx。
搜索lambda表达式。
https://stackoverflow.com/questions/32139516
复制相似问题