C#:用于foreach的诗句
本文关键字:foreach 用于 | 更新日期: 2023-09-27 18:02:04
可能重复:
C#中的For与Foreach循环
一个比另一个好吗?
我似乎听说for
循环的开销比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也对此进行了一些整洁的优化。
所以简短的答案是肯定的,但现实世界的答案是否定的。