当for与数组用在一起的时候,如:
for(int i=0 ;i<array.count;i++) { }
.net的编译器会有一个自动的优化,就是去获取该数组的一个总值array.count,并存放在内存中,无论你的数组是多大, array.count在loop的时候不用反复获取array的总数。重点是这个过程并不是很快,可能是有一定的安全性操作,毕竟这个放在内存中的值还要及时的清除掉。当数组总数很小的时候,这个获取总数的操作占遍历一遍数组的比重是比较大的。
foreach是ienumerator接口每遍历一次都要有两个步骤获取释放,这两个步骤都是很快的但是当量很大的时候其影响就不可忽视了。
因此很简单的说,当数组总量较大的时候一般使用for,较小的时候使用foreach。较大较小的参比值大概是8万~10万
本文来自租赁宝网技术支持,参考网站:http://www.zulinbao.com