c# - Linq 方法正文最佳实践问题

标签 c# linq

这两个语句中哪个更快/更好?

myList.Where(x =>
            {
                bool itemOne= x.ItemOne == paramItemOne;
                bool itemTwo = x.ItemTwo == paramItemTwo;
                return itemOne && itemTwo;
            })


myList.Where(x => x.ItemOne == paramItemOne).Where(x=>x.ItemTwo == paramItemTwo)

还是它们相同?

最佳答案

我也不会说。最快的将是:

myList.Where(x => x.ItemOne == paramItemOne && x.ItemTwo == paramItemTwo)

(假设编译器/JIT 没有优化掉第一种形式中的变量赋值)

第二种形式会更慢,因为它可能涉及对提供给 Where 语句的委托(delegate)的明显更多的方法调用。

关于c# - Linq 方法正文最佳实践问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2429084/

相关文章:

c# - ASP.NET 应用程序可扩展性最佳实践指南

c# - GroupBy,然后根据 C# 中的组对另一个列表进行排序

c# - 查询交错数组中所有列中的第一个元素

c# - 将前 10 个列表项目移动到另一个项目列表

c# - 如何在 C# 中将儒略日期转换为 UTC

c# - 如何避免带有圆角的可缩放用户控件的彩色边框的视觉伪影?

c# - Crystal Reports ActiveX Viewer 在 VB6/.NET App Windows 7 中导致内存不足异常

c# - 如何使用嵌套客户端在 Elasticsearch 中按数组搜索数组属性

C# 使用 Linq 从锯齿状数组中获取列

c# - 如何先按一个属性排序,然后再按另一个属性排序,而不考虑第一个属性的关系?