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,我们将及时处理。

微信扫码关注

更新实时通知

上一篇:dedecms显示提示成功删除一个栏目不起作用的解决方法

下一篇:50ETF期权代理能稳赚不赔吗?

网友评论

请先 登录 再评论,若不是会员请先 注册