哪个在抽象级别Linq或Lambda表达式中更高
本文关键字:表达式 Lambda Linq 抽象 | 更新日期: 2023-09-27 18:08:52
我总是喜欢用lambda表达式对集合执行操作。但是我可以用LINQ实现同样的事情,这比Lambda表达式更简单。但是,我仍然有点困惑,什么是抽象级别的顶部& &;为什么?
我怀疑你说的"LINQ"是指"查询表达式":
var query = from x in y
where x.Foo
select x.Bar
我怀疑你说的"lambda表达式"是指直接调用扩展方法:
var query = y.Where(x => x.Foo)
.Select(x => x.Bar);
这两个真的 LINQ…
查询表达式在稍微更高的抽象级别,我猜,有更多的工作需要深入到真正的操作…但考虑到转换过程相当机械,这并不是非常重要。
LINQ表达式由编译器翻译成相应的扩展方法。Lambda表达式是BCL的一部分,而LINQ语法只是由编译器翻译的语法糖,它不是发出的IL的一部分。
我猜你的问题实际上是关于Linq在查询语法(从car在carList中选择car. brand)和方法语法(carList)之间的差异。Select(car => car. brand))?在这种情况下,很容易回答:Linq的查询语法只是语法糖,将被转换为方法调用。因此,就抽象层次而言,它们几乎是相同的。查询语法对一般人来说看起来更容易理解。
Menno