哪个在抽象级别Linq或Lambda表达式中更高

本文关键字:表达式 Lambda Linq 抽象 | 更新日期: 2023-09-27 18:08:52

我总是喜欢用lambda表达式对集合执行操作。但是我可以用LINQ实现同样的事情,这比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