C#使用yield关键字让自定义集合实现foreach遍历的方法
程序员文章站
2024-02-11 21:03:46
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(); } }
感兴趣的读者可以动手测试一下本文实例代码,相信会有新的收获。
上一篇: 凉拌土豆丝的做法有哪些!
下一篇: Java实现批量下载选中文件功能