public class Persons:IEnumerable
{
public Persons(string[] people)
{
this.people = people;
} public string[] people { set; get; }
public IEnumerator GetEnumerator()
{
return new PersonEnumable(people);
}
}
public class PersonEnumable : IEnumerator
{
public PersonEnumable(string[] people)
{
this.people = people;
}
private string[] people { set; get; }
private int index { set; get; } = -;
/// <summary>
/// 当前对象
/// </summary>
public object Current {
get {
if (index < || index > people.Length-)
return null;
else
return people[index];
}
}
/// <summary>
///
/// </summary>
/// <returns></returns>
public bool MoveNext()
{
if (index < people.Length-)
{
index++;
return true;
}
return false;
} /// <summary>
///
/// </summary>
public void Reset()
{
index = -;
}
}
var strArr = new string[] { "科比", "詹姆斯", "杜兰特", "诺维茨基", "东契奇", "卢比奥" };
var persons = new Persons(strArr);
foreach (var t in persons)
{
Console.WriteLine(t);
}
//foreachq其实大概就是执行了这段代码,只是不知道是什么时候执行的Reset()
PersonEnumable personEnumable = new PersonEnumable(strArr);
while (personEnumable.MoveNext())
{
Console.WriteLine(personEnumable.Current);
}

运行结果如下

可以看出两次输出结果是一样的。

最新文章

  1. cobbler 配置(转载)
  2. 微信小程序一步步搭建商城系列-01-开篇
  3. Jquery 中 ajaxSubmit使用讲解(转)
  4. 如何解决读取到文件末尾时碰到EOF导致的重复输出或者无用输出
  5. Nginx+Tomcat动静态资源分离
  6. [转] Python 模块学习:os模块
  7. Android大放送干:书籍、过程、工具等各种全
  8. 携程Java工程师——一道面向对象面试选择题(转)
  9. Oracle 数据库 有用的sql语句
  10. C++11改进我们的程序之简化我们的程序1
  11. unity下贴图混合(Texture Blending)
  12. Contest1874 - noip基础知识五:动态规划(背包、树dp、记忆化、递推、区间、序列dp、dp优化)
  13. bzoj 2669 题解(状压dp+搜索+容斥原理)
  14. scrapy爬虫框架处理流程简介
  15. Android学习之——自己搭建Http框架(1)
  16. Centos之链接命令
  17. GreenOpenPaint的实现(六)图片的保存和打开
  18. 第4天:function对象(案例:获取当前日期属于当年第几天、arguments对象、函数类型、参数、返回值、自身调用)
  19. tcpdump使用
  20. textview的阴影线

热门文章

  1. Eratos筛法(筛选素数)
  2. 【转载】Python tips: 什么是*args和**kwargs?
  3. Devops(一):CentOS7 安装Maven3.6.1详解
  4. 代理模式之Cglib代理
  5. Permission权限大全
  6. RedHat Enterprise7 搭建ISCSI
  7. Linux下通过crontab命令来实现定时任务
  8. Spring-Kafka —— KafkaListener定时启动和停止
  9. SpringBoot: 9.整合thymeleaf(转)
  10. 【Hadoop】MapReduce练习:多job关联实现倒排索引