关于 linq to objects,如果我使用 .Where(x => x....) 然后直接使用 .SkipWhile(x => x...) 这是否会导致性能下降,因为我仔细检查收藏品两次?
我应该找到一种方法将所有内容放在 Where 子句或 SkipWhile 子句中吗?
最佳答案
将迭代器链接在一起会导致效率低下,但实际上非常小。 (特别是,虽然每个匹配项都会被两个运算符看到,但它们不会被缓冲或类似的东西。LINQ to Object 不会创建所有匹配项的新列表,然后 在其上运行 SkipWhile
。)
如果这对性能来说如此很关键,那么您可能会因为一开始不使用 LINQ 而获得非常轻微的速度提升。在所有其他情况下,首先编写最简单的代码,只有当您证明它是一个瓶颈时才担心这样的微优化。
关于c# - 结合 LINQ 语句提高效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2188242/