C#: for verses foreach
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
For vs Foreach loop in C#
号
一个比另一个好吗?
我好像听说一个
一个比另一个"更好"取决于您的应用程序。你只是在读数据结构吗?您正在写入数据结构吗?你甚至不使用任何类型的数据结构,只做一些数学计算吗?
它们各自有各自的用途。for-each循环通常用于从数据结构(数组、链接列表等)中读取内容。例如。
1 2 3 4 5 | foreach(myClass i in myList) { int x = i.getX(); console.writeline(x); } |
其中for循环可以用于执行上述操作,以及更新数据结构条目等其他操作。
1 2 3 4 | for (int i = 0; i < myList.count(); i++) { myList[i].x += i * 80; } |
号
今天的编译器比.NET 1的编译器好多了。
虽然for更为优化,但实际上在IL中将数组上的foreach转换为for.forEach对泛型集合进行了优化,因为它返回泛型IEnumerator,而linq也对此进行了一些neato优化。
所以简短的答案是肯定的,但现实世界的答案是否定的。
如果不需要索引(在大多数应用程序中这是大多数时间),则使用