這裏的一個比特的打印出的數字的代碼平方從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