【发布时间】:2010-10-29 06:45:07
【问题描述】:
在 C# 3.0 中,我喜欢这种风格:
// Write the numbers 1 thru 7
foreach (int index in Enumerable.Range( 1, 7 ))
{
Console.WriteLine(index);
}
优于传统的for 循环:
// Write the numbers 1 thru 7
for (int index = 1; index <= 7; index++)
{
Console.WriteLine( index );
}
假设“n”很小,所以性能不是问题,有人反对新风格而不是传统风格吗?
【问题讨论】:
-
现在这个问题,包括来自许多答案的总结,真的很相关,几乎是 SO 中问题的良好实践模型。应该装框!
-
@heltonbiker 错误——实际上包含摘要不适合 SO 模型。应删除摘要。 SO 作为问答网站将问题和答案分开,而不是有一个“帖子”的一般概念。
-
两者的行为会有所不同,具体取决于您正在编译的 .Net 版本。 for 循环版本可能并不总是保留执行上下文,特别是如果您有一个 yield 语句。
-
使用 Range() 还有一个好处:你可以在循环内改变 index 的值,而且不会破坏你的循环。
-
期待在此线程中添加新的 C# 8.0 功能! docs.microsoft.com/en-us/dotnet/csharp/whats-new/…