这是一段代码,它打印出从0到9的数字的平方:
for (int i = 0; i < 10; i++)
Console.WriteLine(i*i);
使用for
循环从0到N以1为步长进行某些操作是一种非常常见的习惯用语。
这里有一个表达这个意思的UpTo
方法:
class MathUtil
{
public static void UpTo(int n, Action<int> proc)
{
for (int i = 0; i < n; i++)
proc(i);
}
}
上面的squares示例现在是:
MathUtil.UpTo(10, (i) => Console.WriteLine(i * i));
我的问题是,标准的C#库是否有类似上述UpTo
的东西?理想情况下,我希望所有整数对象都可以使用'UpTo'方法。所以我可以这样做:
var n = 10;
n.UpTo(...);
在C#中是否有可能实现这个功能?
for
循环比UpTo
更易读。此外,在for
循环中修改起始数字(0
)或增量方法(i++
)非常容易。我认为 Eric Lippert 在ForEach
方法上的评论 也适用于这里。 - Heinzi10.Times(DoStuff)
与10.Upto(DoStuff)
进行比较。Ruby有类似的关键字times
。 - nawfal