for循环和foreach的区别
时间:5年前 阅读:6258
1、for 循环靠下标定位. list[3] 相当于 *(list + 3).
for(int i = 0; i < GetCount(); i++) { .... } = int i = 0; while(i < GetCount()) { ... }
2、
foreach 依赖 IEnumerable.
第一次 var a in GetList() 时 调用 GetEnumerator 返回第一个对象 并 赋给a,
以后每次再执行 var a in GetList() 的时候 调用 MoveNext.直到循环结束.
期间GetList()方法只执行一次.
foreach (var a in GetList()) { ... } = var a; IEnumerator e = GetList().GetEnumerator(); while (e.MoveNext) { a = e.Current; }
总结:for 循环每次循环会调用 GetCount() 来比较长度,而 foreach 不考虑长度,只调用一次GetList()。
本站声明:网站内容来源于网络,如有侵权,请联系我们https://www.qiquanji.com,我们将及时处理。
微信扫码关注
更新实时通知
网友评论