这里的一个比特的打印出的数字的代码平方从0到9:在C#中有一个“upto”方法吗?
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);
}
}
上方正方形比如现在是:
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'方法的评论](http://blogs.msdn.com/b/ericlippert/archive/2009/05/18/foreach-vs-foreach.aspx)也适用于此。 – Heinzi
@Heinzi感谢您的链接到Eric的文章! – dharmatech
.NET扩展方法(http://dnpextensions.codeplex.com/)有一个扩展方法。 '5×(...);' – Jalal