代码检查:循环可以转换为 LINQ 表达式
当 JetBrains Rider 确定您正在使用 IEnumerable 和 for 循环进行迭代时,它可能会建议将此循环转换为 LINQ 表达式。 例如,以下代码:
int c = 1;
for (int i = 0; i < numbers.Length; ++i)
c *= numbers[i];
可以自动转换为
int c = numbers.Aggregate(1, (current, t) => current*t);
JetBrains Rider 通常足够智能,可以识别哪些 LINQ 操作符可以表达循环中定义的操作。 例如,如果我们在上述循环中有 c += numbers[i] ,JetBrains Rider 会将表达式简化为 numbers.Sum()。
但这种方法的优势是什么? 一个优势是,您不必进行与迭代变量相关的记录(除非在确实需要迭代变量的情况下)。 此外,您还可以享受所有 LINQ 特定的好处——例如,您只需在集合名称后添加 .AsParallel() 方法调用,就可以请求使用并行化。 这将指示运行时使用 PLINQ(并行 LINQ),从而加快您的计算速度。
最后修改日期: 2025年 9月 26日