我们知道使用foreach的一个要求是对象必须继承自IEnumerable接口

这样才可以进行迭代

那内部是怎么实现的呢

这个时候会将对应的foreach语句转换为一个while循环

并且通过MoveNext方法来将索引位置向后移动一位,如果存在下一个元素则返回true,否则返回false

同时通过变量Current获取当前索引处的元素

示例转化如下

foreach(var i in per)
{
//...
} IEnumerator<Person> p=per.getEnumerator();
while(p.MoveNext())
{
Person t=p.Current;
//...
}

最新文章

  1. 通过SmartGit把java maven项目传到码云
  2. C#的回调方法
  3. [shell编程]一个简单的脚本
  4. C# winform滚动字幕
  5. Cocos2d-X中的坐标系
  6. Jquery EasyUI datagrid后台数据表格生成及分页详解
  7. (原创)看我用各种姿势在手机和PC查看到连接到的wifi密码
  8. 多线程下System.Security.Cryptography.Aes CreateDecryptor报“Safe handle has been closed”的解决方案
  9. 大数据平台搭建-spark集群安装
  10. js函数式编程术语总结 - 持续更新
  11. 【原创】运维基础之Docker(1)简介、安装、使用
  12. Java调用WebService就是这么简单
  13. 存储过程导入excel
  14. classfication中使用图像金字塔和sliding windows提高准确率
  15. Solr学习笔记——查询
  16. 05: greenlet:轻量级的并发编程
  17. [原创]内网渗透JSP webSehll连接工具
  18. CTE 递归查询全解
  19. shell 判断路径
  20. Centos7下yum安装配置nginx与php

热门文章

  1. LeetCode算法题-Sum of Two Integers(Java实现)
  2. 【2018.05.09 Python学习及实践】个人项目中使用的Python库备忘-持续更新
  3. 转 CSS3+js实现多彩炫酷旋转圆环时钟效果
  4. Spring中事务配置以及事务不起作用可能出现的问题
  5. 设计模式のProxyPattern(代理模式)----结构模式
  6. dicom学习文章
  7. SICP 习题 (1.43)解题总结
  8. 基于位置的服务——百度地图SDK练习
  9. docker swarm:Error response from daemon: rpc error: code = Unavailable desc = grpc: the connection is unavailable
  10. Difference between BeanFactory and FactoryBean in Spring Framework (Spring BeanFactory与Factory区别)