Øyv*_*hen 34
我猜你的意思是query expression在这里谈论LINQ.
它们是等价的.编译器query expression在编译之前将其更改为等效的Lambda表达式,因此生成的IL完全相同.
例
var result = select s from intarray
where s < 5
select s + 1;
Run Code Online (Sandbox Code Playgroud)
与...完全相同
var result = intarray.Where( s => s < 5).Select( s => s+1);
Run Code Online (Sandbox Code Playgroud)
请注意,如果您编写查询表达式,如下所示:
var result = select s from intarray
where s < 5
select s;
Run Code Online (Sandbox Code Playgroud)
它被转换为:
var result = intarray.Where( s => s < 5);
Run Code Online (Sandbox Code Playgroud)
最后调用Select被省略,因为它是多余的.
快速比较反射器可能会奏效。然而,从“偏好”的角度来看,我发现 lambda 语句更容易遵循、编写和全面使用它们,无论是对象、xml 还是其他任何东西。
如果性能可以忽略不计,我会选择最适合您的那个。
我实际上开始了一个关于 linq 方法的小话题,这可能会引起人们的兴趣:
干杯..
| 归档时间: |
|
| 查看次数: |
24805 次 |
| 最近记录: |