这两种说法中哪种更快/更好?

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语句的委托进行更多的方法调用。

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

10-13 03:14