c# - 如何用 C# 中的函数语句替换 for 循环?

标签 c# linq functional-programming lambda for-loop

一位同事曾经说过,每次我写一个 for 循环时,上帝都在杀死一只小猫。

当被问及如何避免 for 循环时,他的回答是使用函数式语言。但是,如果您受困于非函数式语言,比如 C#,有哪些技术可以避免 for 循环或通过重构摆脱它们?也许使用 lambda 表达式和 LINQ?如果是,怎么办?

问题

所以问题归结为:

  1. 为什么 for 循环不好?或者,在什么情况下要避免 for 循环以及为什么?
  2. 您能否提供 C# 代码示例,说明它之前的样子,即有循环和没有循环之后的样子?

最佳答案

在您对某些数据集进行操作并希望转换、过滤或聚合元素的情况下,函数结构通常比 for 循环更清楚地表达您的意图。

当您想重复执行某些操作时,循环非常合适。


例如

int x = array.Sum();

更清楚地表达了你的意图
int x = 0;
for (int i = 0; i < array.Length; i++)
{
    x += array[i];
}

关于c# - 如何用 C# 中的函数语句替换 for 循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2647073/

相关文章:

c# - 在 xdocument 中移动节点

c# - 向 IQueryable 追加附加查询部分

python - 在类里面构建一系列 df 操作的更好方法

c# - 保存文件对话框 - 路径无效

c# - 以编程方式不可见地连接 Windows VPN

c# - 创建通用扩展方法时我们扩展了什么?

c# - 如何在保持其语法的同时使此函数式代码的性能更高

c# - 如何将两个列表的项目与 linq 进行比较?

linq - Linq 查询结果的返回数据类型

c# - C# 中的 Monadic 编程