for循环和foreach的区别
1、for 循环靠下标定位. list[3] 相当于 *(list + 3).
Bash
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()方法只执行一次.
Bash
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/post/7669.html
本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。