for循环与foreach的区别
2018-06-24 01:03:21来源:未知 阅读 ()
for循环与foreach的区别
foreach 依赖 IEnumerable.
第一次 var a in GetList() 时 调用 GetEnumerator 返回第一个对象 并 赋给a,
以后每次再执行 var a in GetList() 的时候 调用 MoveNext.直到循环结束.
期间GetList()方法只执行一次.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
foreach ( var a in GetList()) { ... } = var a; IEnumerator e = GetList().GetEnumerator(); while (e.MoveNext) { a = e.Current; } |
for 循环靠下标定位. list[3] 相当于 *(list + 3).
1
2
3
4
5
6
7
8
9
10
11
12
13
|
for (int i = 0; i < GetCount(); i++) { .... } = int i = 0; while (i < GetCount()) { ... } |
or 循环每次循环会调用 GetCount() 来比较长度. 而 foreach 不考虑长度,只调用一次GetList().
结论.
在固定长度或长度不需要计算的时候for循环效率高于foreach.
在不确定长度,或计算长度有性能损耗的时候,用foreach比较方便.
并且foreach的时候会锁定集合中的对象.期间不能修改.
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:圣杯与双飞翼布局
下一篇:繁星H5之旅-前端学习入门
- HTML基础02 2020-06-09
- form提交表单时,action携带参数(form跳转页面时在rul中拼 2020-05-01
- 常见form表单5种input输入类型 2020-03-29
- 纯css实现单张图片无限循环无缝滚动 2020-03-12
- form实现浏览者登陆、注册页面与浏览器的交互 2020-02-29
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash