c# - 结合 LINQ 语句提高效率

标签 c# linq performance where-clause

关于 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/

相关文章:

c# - 从 2 个集合中查找添加和删除的高效算法

c# - 找不到方法 : 'System.Object Newtonsoft.Json.Linq.JToken.ToObject(System.Type)'

c# - 我如何修复此 LINQ,以便它将一对 val 视为不同的值?

c++ - 反转数字的最有效方法

c# - 从 C# 调用标量函数

c# - 如何将适用于整数的通用表达式树代码应用于枚举(例如,如何使 Expression.PostIncrementAssign() 适用于枚举?)?

c# - 是否可以在没有 SQL Server 的情况下访问 .mdf 数据库?

c# - 如何使用 linq 在选择查询中获取值?

performance - 在没有优化的情况下添加冗余分配可以加快代码的速度

android - 删除返回堆栈中的多个 fragment