Dav*_*.ca 38 .net c# linq lambda .net-3.5
我使用.Net 3.5和VS 2008一个多月了.像大多数.Net开发人员一样,我已经从.Net 1.0&2.0和VS 2005的多年经验发展而来.就在最近,我发现了LINQ和Lambda表达式的简单性和强大功能,就像我最近的问题一样,例如在列表中查找项目LINQ,使用Lambda或LINQ 将类实例转换或映射到另一个实例的列表,并使用Lambda或LINQ 将类列表转换或映射到另一个类列表.
我承认Lambda和LINQ更简单易读,看起来非常强大.在幕后,.Net编译器必须生成大量代码才能实现这些功能.因此,我对转换到新语法有点犹豫,因为我已经知道了实现相同结果的"旧"方法.
我的问题是关于Lambda和LINQ的效率和性能.也许Lambda表达式大多是内联函数,在这种情况下我猜Lambda应该没问题.LINQ怎么样?
让我们将讨论限制为LINQ-to-Objects LINQ-to-SQL(LINQ-to-SQL).任何评论,比较和经验?
ang*_*son 33
这里没有一个单一的答案就足够了.
LINQ有许多用途和许多实现,因此对代码的效率有很多影响.
正如触手可及的每一项技术一样,LINQ可以并且将被滥用和滥用,并且区分它和正确使用的能力仅取决于一件事:知识.
所以我能给你的最好的建议是去了解LINQ是如何真正实现的.
你应该检查的事情是:
和往常一样,在查看效率问题时,唯一安全的方法就是衡量.使用LINQ创建一段代码,它执行单个,知道,创建替代方案,然后测量两者,并尝试改进.猜测和假设只会导致糟糕的结果.
从技术上讲,最快的方法是自己控制所有细节. 以下是一些性能测试.请注意,foreach关键字和ForEach LINQ构造的使用速度远比仅使用和编写过程代码要慢得多.
但是,编译器可以并且将会得到改进,您可以随时分析代码并优化任何有问题的区域.通常建议使用更具表现力的功能,使代码更容易阅读,除非你真的需要额外的纳秒.
| 归档时间: |
|
| 查看次数: |
36490 次 |
| 最近记录: |