手机
当前位置:查字典教程网 >编程开发 >C#教程 >C#使用yield关键字让自定义集合实现foreach遍历的方法
C#使用yield关键字让自定义集合实现foreach遍历的方法
摘要:foreach遍历是C#常见的功能,而本文通过实例形式展现了C#使用yield关键字让自定义集合实现foreach遍历的方法。具体步骤如下:...

foreach遍历是C#常见的功能,而本文通过实例形式展现了C#使用yield关键字让自定义集合实现foreach遍历的方法。具体步骤如下:

一般来说当我们创建自定义集合的时候为了让其能支持foreach遍历,就只能让其实现IEnumerable接口(可能还要实现IEnumerator接口)

但是我们也可以通过使用yield关键字构建的迭代器方法来实现foreach的遍历,且自定义的集合不用实现IEnumerable接口

注意:虽然不用实现IEnumerable接口 ,但是迭代器的方法必须命名为GetEnumerator(),返回值也必须是IEnumerator类型。

实例代码以及简单注释说明如下:

class Person { public string Name; public void SayHi() { Console.WriteLine("Hello: {0}",this.Name); } } //非常简单的自定义集合(- -简单到增加,删除,索引器等功能都没有实现) 该类没有实现IEnumerable接口 class PersonList { Person[] pers =new Person[4]; public PersonList() { pers[0] = new Person() { Name = "1" }; pers[1] = new Person() { Name = "2" }; pers[2] = new Person() { Name = "3" }; pers[3] = new Person() { Name = "4" }; } //简单的迭代器方法 public IEnumerator GetEnumerator() { foreach (Person item in pers) { //yield return 作用就是返回集合的一个元素,并移动到下一个元素上 yield return item; } } } class Program { static void Main(string[] args) { PersonList list = new PersonList(); foreach (Person item in list) { item.SayHi(); } Console.ReadLine(); } }

感兴趣的读者可以动手测试一下本文实例代码,相信会有新的收获。

【C#使用yield关键字让自定义集合实现foreach遍历的方法】相关文章:

C# dynamic关键字的使用方法

C# mysql 插入数据,中文乱码的解决方法

C# Dynamic关键字之:调用属性、方法、字段的实现方法

c# TreeView添加右键快键菜单有两种方法

C# Dynamic关键字之:解析dynamic就是Object

用.NET创建Windows服务的方法第1/2页

c# 获取数据库中所有表名称的方法

解决C#中取消方向键对控件焦点控制的实现方法

C#几种截取字符串的方法小结

使用C#实现阿拉伯数字到大写中文的转换

精品推荐
分类导航