C#:用于foreach的诗句

本文关键字:foreach 用于 | 更新日期: 2023-09-27 18:02:04

可能重复:
C#中的For与Foreach循环

一个比另一个好吗?

我似乎听说for循环的开销比foreach少,但我还没有看到这方面的证据。

C#:用于foreach的诗句

一个比另一个"更好"取决于您的应用程序。你只是在读一个数据结构吗?您是否在向数据结构写入?你甚至没有使用任何类型的数据结构,只是做一些数学运算吗?

它们各有其用。for each循环通常用于从数据结构(数组、链表等(中读取内容。例如

foreach(myClass i in myList)
{
    int x = i.getX();
    console.writeline(x);
}

其中,for循环可用于执行上述操作,以及更新数据结构条目等其他操作。

for (int i = 0; i < myList.count(); i++)
{
   myList[i].x += i * 80;
}

如果不需要索引,请使用foreach(在大多数应用程序中,这是大多数时间(,否则使用for

今天的编译器比.net 1的编译器好多了。

虽然for更优化,但数组上的foreach实际上在IL中转换为for。对泛型集合的Foreach进行了优化,因为它返回一个泛型ienumerator,linq也对此进行了一些整洁的优化。

所以简短的答案是肯定的,但现实世界的答案是否定的。