创建一个简单的迭代器

在C# 1.0中,自己写代码实现IEnumerator

 1   class IterateCollection : IEnumerable
 2     {
 3         private string[] strarr = new string[5];
 4         public IterateCollection() { }
 5         public IterateCollection(string[] strarr)
 6         {
 7             this.strarr = strarr;
 8         }
 9         public string this[int index]
10         {
11             get { return strarr[index]; }
12         }
13
14         public int Count
15         {
16             get { return strarr.Length; }
17         }
18
19         public IEnumerator GetEnumerator()
20         {
21             return new IterateEnumertor(this);
22         }
23
24     }
 1 class IterateEnumertor : IEnumerator
 2     {
 3         private readonly IterateCollection collection;
 4         private int index;
 5         private object current;
 6         public IterateEnumertor(IterateCollection collection)
 7         {
 8             this.collection = collection;
 9             index = 0;
10         }
11
12         public object Current
13         {
14
15             get { return current; }
16         }
17
18         public bool MoveNext()
19         {
20             if (index + 1 > collection.Count) { return false; }
21             else
22             {
23                 this.current = collection[index];
24                 index++;
25                 return true;
26             }
27         }
28
29         public void Reset()
30         {
31             index = 0;
32         }
33     }
 1   static void Main(string[] args)
 2         {
 3             string[] strarr = { "刘诗诗","陈乔恩","刘亦菲"};
 4             IterateCollection collection = new IterateCollection(strarr);
 5             foreach(string str in collection)
 6             {
 7                 Console.WriteLine(str.ToString());
 8             }
 9             Console.Read();
10         }

摘要:1 想要可以被迭代,就要实现IEnumerable,或者IEnumerable<T>,并且重写GetEnumerator();方法,得到一个迭代器

2 在C#1.0中迭代器要自己写,通过实现IEnumerator,或者IEnumerator<T>,并且重写MoveNext();和Reset();方法

C#2.0简化了迭代器的实现

1        public IEnumerator GetEnumerator()
2         {
3             //return new IterateEnumertor(this);
4             for (int index = 0; index < strarr.Length; index++)
5             {
6                 yield return strarr[index];
7             }
8         }
摘要 yield return 关键字告诉编译器去执行实现过程,我们程序员就减少了编码量
时间: 2024-10-08 10:21:48

创建一个简单的迭代器的相关文章

创建一个简单的银行程序包.........未完善,待续

2练习1:创建一个简单的银行程序包   练习目标-Java 语言中面向对象的封装性及构造器的使用. 任务 在这个练习里,创建一个简单版本的(账户类)Account类.将这个源文件放入banking程序包中.在创建单个帐户的默认程序包中,已编写了一个测试程序TestBanking.这个测试程序初始化帐户余额,并可执行几种简单的事物处理.最后,该测试程序显示该帐户的最终余额. 1. 创建banking 包 2. 在banking 包下创建Account类.该类必须实现上述UML框图中的模型. 声明一

IntelliJ IDEA 15 部署Tomcat及创建一个简单的Web工程

一.部署Tomcat 二.创建一个简单的Web工程 2.1创建一个新工程 创建一个新工程 设置JDK及选择Web Application (创建的是Web工程) 点击Next,选择工作空间,起个工程名 2.2项目部署 在工具栏点击 Project: 无需任何设置,选择默认编译目录(或自定义编译目录) Modules: 将Tomcat加入 Libraries:无需任何设置.这里描述了此项目的依赖. Facets: 无需任何设置.这里描述了此项目所适配的服务框架 Artifacts: 无需任何配置.

mysql 如何创建一个简单的存储过程

1 用mysql客户端登入2 选择数据库 mysql>use test3 查询当前数据库有哪些存储过程 mysql>show procedure status where Db='test'4 创建一个简单的存储过程 mysql>create procedure hi() select 'hello'; 5 存储过程创建完毕,看怎么调用它 mysql>call hi();显示结果 mysql> call hi(); +-------+ | hello | +-------+

《Entity Framework 6 Recipes》翻译系列 (3) -----第二章 实体数据建模基础之创建一个简单的模型 (转)

第二章 实体数据建模基础 很有可能,你才开始探索实体框架,你可能会问“我们怎么开始?”,如果你真是这样的话,那么本章就是一个很好的开始.如果不是,你已经建模,并在实体分裂和继承方面感觉良好,那么你可以跳过本章. 本章将带你漫游使用实体框架建模的基本实例,建模是实体框架的核心特性,同时也是区别实体框架和微软早期的数据访问平台的特性.一旦建好模,你就可以面向模型编写代码,而不用面向关系数据库中的行和列. 本章以创建一个简单概念模型的实例开始,然后让实体框架创建底层的数据库,剩下的实例,将向你展示,如

如何利用CEF3创建一个简单的应用程序 (Windows Platform)

1. 说明 这篇文章主要讲述如何利用CEF3来创建一个简单的应用程序,引用的是1535及以上版本中包含的 Cefsimple 项目例子.如果想知道关于CEF3更多的使用方法,可以去访问 GeneralUsage. 2. 开始 首先,根据自身所使用的开发平台,可以去 这里 下载对应的发布版本.针对这个教程,我们需要下载1750或者更新的版本.当前支持的平台有Windows, Linux和Mac OS X.每一个版本都包含了当在特定平台上编译特定版本CEF3时所需要的所有文件和资源.您可以通过包含在

[安卓基础] 005.创建一个简单的UI

*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } a { color: #4183C4; text-decoration: none; } a.absent { color: #cc0000; } a.anchor { display: block; padding-left: 30px; margin-left: -30px; cursor: poin

SharePoint 创建一个简单的Web Part 部分

SharePoint 创建一个简单的Web Part 部分 标准Web零件有时会很强大,运行多个功能的能力. 本文介绍了如何使用Visual Studio 创建一个简单的Web部分. 1. 打开VS,点击文件----新建项目. 2. 选择空白SharePoint项目.命名SmallvilleWebPartProject,点击确定.选择部署为场解决方式. 3. 右击项目加入新项目. 4. 选择Web部件. 5. 命名CustomerInformation,点击加入. 6. 右击新的Web部件项目.

Highcharts创建一个简单的柱状图

新建一个html文件,将highcharts引入到你的页面后,通过两个步骤我们就可以创建一个简单的图表了. 1.创建div容器 在页面的 body部分创建一个div,并指定div 的 id,高度和宽度,代码如下 <div id="container" style="min-width:800px;height:400px"></div> 2.编写Highcharts代码 编写Highcharts必须的代码,用<script><

SharePoint创建一个简单的Visio Web部件图

SharePoint创建一个简单的Visio Web部件图 Visio有许多强大的Mash-up混聚功能,使它可以轻松集成到SharePoint 2010中. 1. 打开Visio 2010,创建新的ITIL图. 2. 绘图如下: 3. 点击后台选项卡(左上角). 4. 点击另存为,选择位置,点击确定,输入Keyword,点击确定. 5. 在页面上添加Web部件. 6. 编辑Web部件,将上图的URL填上去. SharePoint创建一个简单的Visio Web部件图,布布扣,bubuko.co