结合LINQ语句以提高效率

Gra*_*ant 1 c# linq performance where-clause

关于linq到对象,如果我使用.Where(x => x ....)然后直接使用.SkipWhile(x => x ...)这会导致性能下降,因为我正在检查收集两次?

我应该找到一种方法将所有内容放在Where子句或SkipWhile子句中吗?

Jon*_*eet 7

由于将迭代器链接在一起会有一个小的低效率,但它确实会非常小.(特别是,尽管两个运算符都会看到每个匹配的项目,但它们不会被缓冲或类似的任何内容.LINQ to Object不会创建所有匹配项的新列表,然后SkipWhile在其上运行.)

如果是这样的性能关键,你可能会在一开始就不使用LINQ得到一个非常轻微的减速.在其他所有情况下,首先编写最简单的代码,只有当你证明它是一个瓶颈时才会担心这样的微优化.