每次我需要在使用 C# 的算法中执行N次操作时,我都会编写这段代码
for (int i = 0; i < N; i++)
{
...
}
学习 Ruby 我了解了方法times()可以与这样的相同语义一起使用
N.times do
...
end
C# 中的代码片段看起来更复杂,我们应该声明无用的变量i。
我尝试编写返回IEnumerable的扩展方法,但我对结果不满意,因为我必须再次声明一个循环变量i。
public static class IntExtender
{
public static IEnumerable Times(this int times)
{
for (int i = 0; i < times; i++)
yield return true;
}
}
...
foreach (var i in 5.Times())
{
...
}
是否可以使用一些新的 C# 3.0 语言特性让N次循环更优雅?