12-15:迭代器
来源:互联网 发布:怎么注册网络直播公司 编辑:程序博客网 时间:2024/05/16 17:08
迭代器是可以返回相同类型的值的有序序列的一段代码。
迭代器可用作方法、运算符或 get 访问器的代码体。
迭代器代码使用 yield return 语句依次返回每个元素。yield break 将终止迭代。有关更多信息,请参见 yield。
可以在类中实现多个迭代器。每个迭代器都必须像任何类成员一样有唯一的名称,并且可以在 foreach 语句中被客户端代码调用,如下所示: foreach(int x in SampleClass.Iterator2){}
迭代器的返回类型必须为 IEnumerable、IEnumerator、IEnumerable<T> 或 IEnumerator<T>。
迭代器是使用在foreach中的集合。在C#2.0中使用迭代器创建一个用于foreach的集合,实现上比较简单:继承于IEumnerable,并实现 GetEnumerator()。
迭代器的机制:
实际上迭代器只是在C#2.0中通过编译器一层额外处理的,用来简化创建可用于foreach的枚举集合的工作,从性能上没有什么变化。对于其生成的中间语言没有太多的变化。
适用性
1.访问一个聚合对象的内容而无需暴露它的内部表示。
2.支持对聚合对象的多种遍历。
3.为遍历不同的聚合结构提供一个统一的接口(即, 支持多态迭代)。
总结
Iterator模式就是分离了集合对象的遍历行为,抽象出一个迭代器类来负责,这样既可以做到不暴露集合的内部结构,又可让外部代码透明的访问集合内部的数据
项目中应用到的地方:
- ArrayList list2 = new EquipmentOperation().Show();
- IEnumerator it = list2.GetEnumerator();
- while (it.MoveNext())
- {
- Users u2 = (Users)it.Current;
- it.MoveNext();
- Equipment e2 = (Equipment)it.Current;
- it.MoveNext();
- UsersGoldCoin ugc = (UsersGoldCoin)it.Current;
- it.MoveNext();
- UsersEquipment ue = (UsersEquipment)it.Current;
- Console.WriteLine(u2.Name + " " + e2.Name + " " + ugc.Number + " " + ue.Number);
- }
更多精彩请点击 http://www.gopedu.com/article
- 12-15:迭代器
- java基础15迭代器
- java基础15迭代器
- (15)迭代器
- jQuery源码分析15--迭代器
- 设计模式--[12]迭代器模式
- pyhotn3入门基础-12 迭代器
- 2006-12-15 郁闷
- 2008-12-15周记
- 生活杂记-12/15
- 2009-12-15 Tue
- 2009-12-15
- 2010-12-15
- 2010-12-15
- 2010-12-15随记
- 2011-12-15
- 2012.10.12-15
- 2012-12-15
- 黑马程序员--------java Collections、Arrays、高级for、可变参数、静态导入、System、Runtime、Math、Date、Calendar
- 程序员怎么从中国直接去美国工作?
- 朝阳过敏性鼻炎如何调理 首选祖传鼻炎药
- 深入探索C++对象模型--C++构造函数
- gnome3 添加自定义app
- 12-15:迭代器
- 静态方法代替构造器-effectiveJava读书笔记
- swift学习---长句部分六(第一次计划看一本完整的英文资料,你是最棒的,加油)
- 第16周项目1-1指针变量引用数组来输出数组
- uninty3D__一月后的心得
- 入侵【提权】读取各种配置文件
- ScrollView嵌套GridView的滚动事件解决
- 我的第一篇文章
- 能力要提高,就需要操作,我认为就是这样,我也这样做