C# 迭代器简析
2015-11-09 14:10
429 查看
迭代器(iterator)有时又称游标(cursor)是程序设计的软件设计模式,可在容器(container,例如链表或阵列)上遍访的接口,设计人员无需关心容器的内容。
简单迭代器的实现:
简单迭代器的实现:
using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; namespace ConsoleApplication1 { class Program { static bool delay = true; static void Main(string[] args) { var result = getResult(); Console.WriteLine("first writeline : "); //for循环控制迭代 /* for (var i = result.Current; result.MoveNext(); ) { i = result.Current; Console.WriteLine("outside writeLine : {0}", i); }*/ //手动控制迭代 var i = result.Current; Console.WriteLine("outside writeLine : {0}", i); result.MoveNext(); i = result.Current; Console.WriteLine("outside writeLine : {0}", i); result.MoveNext(); i = result.Current; Console.WriteLine("outside writeLine : {0}", i); result.MoveNext(); i = result.Current; Console.WriteLine("outside writeLine : {0}", i); result.MoveNext(); i = result.Current; Console.WriteLine("outside writeLine : {0}", i); result.MoveNext(); i = result.Current; Console.WriteLine("outside writeLine : {0}", i); result.MoveNext(); i = result.Current; Console.WriteLine("outside writeLine : {0}", i); result.MoveNext(); i = result.Current; Console.WriteLine("outside writeLine : {0}", i); result.MoveNext(); i = result.Current; Console.WriteLine("outside writeLine : {0}", i); Console.ReadLine(); } static IEnumerator getResult() { //var arr = Array.CreateInstance(typeof(Program), 1); var arr = new int[] { 1, 2, 3, 45, 23, 23, 4, 3213 }; foreach (var item in arr) { yield return item; if (delay) Thread.Sleep(100); } } } }
相关文章推荐
- C#自定义Attribute值的获取与优化
- C#获取硬盘序列号
- c#邮件带附件发送成功后附件文件不能及时删除
- C# 文件流压缩解压
- C# 文件流压缩解压
- 转载 c# 颜色对照表
- C# 的各种排序
- C#获取Excel中所有的Sheet名称
- C#利用WebService接口下载文件
- c# 获取网页源码,自动判断编码格式新方法!(转)
- c#根据配置文件反射
- c#验证码
- C#第十二天
- C#中的域与属性
- C#RichTextBox[自动选词]与[生僻字显示]问题
- c# 类;一维数组;二维数组
- C#下Base64、MD5、AES加密
- C# List 的一些操作 (两List元素是否想同,List是否包含在另一个List中)
- c#操作.mpp文件
- C#学习笔记 反射