一尘不染

.NET中LINQ和Lambda表达式的效率和性能是什么?

c#

我已经使用.Net 3.5和VS 2008了一个多月。像大多数.Net开发人员一样,我是从.Net 1.0&2.0和VS
2005的多年经验中发展而来的。最近,我发现了LINQ和Lambda Expressions的简单性和强大功能,例如我最近的问题(例如,查找列表中的项)
LINQ
使用Lambda或LINQ 类实例转换或映射到另一个实例列表,并使用Lambda或LINQ 将类列表转换或映射到另一个类列表

我承认Lambda和LINQ更简单易读,而且功能强大。在后台,.Net编译器必须生成大量代码才能实现这些功能。因此,我有点犹豫要切换到新语法,因为我已经知道达到相同结果的“旧”方法。

我的问题是关于Lambda和LINQ的效率和性能。也许Lambda表达式主要是内联函数,在这种情况下,我认为Lambda应该可以。LINQ呢?

让我们将讨论限于LINQ-to-Objects LINQ-to-SQL(LINQ-to-SQL)。有什么意见,比较和经验吗?


阅读 1175

收藏
2020-05-19

共1个答案

一尘不染

这里没有一个单一的答案就足够了。

LINQ有许多用途和实现,因此对代码效率有许多影响。

就像我们触手可及的每一项技术一样,LINQ可能并且将被滥用和滥用,而区分这些技术和正确使用的能力仅取决于一件事:知识。

因此,我能为您提供的最佳建议是继续阅读LINQ的实际实现方式。

您应该检查的内容是:

与往常一样,在查看效率问题时,唯一安全的方法就是衡量。使用LINQ创建一段代码,该代码完成一个单一的,已知的事情并创建一个替代方案,然后对二者进行度量,并尝试进行改进。猜测和假设只会导致不良结果。

2020-05-19