C#迭代器

知识点一、迭代器是什么

 知识点二、标准迭代器的实现方法

 迭代器可以使我们能够通过foreach来遍历 CustimList中list。

 直接写会报错。

我们需要让这个类继承接口。        IEnumerable

 实现其中方法

 

 只继承IEnumrale接口是不行的。还需要继承另一个接口,IEnumerator。

 实现接口:

 foreach执行原理:

 完善接口方法:

1、先设置一个光标为-1.

 2、设置MoveNext()的返回条件

 3、设置Current属性

 4、设置返回的IEnumerator()

 运行测试:

 

 再次遍历:

 发现只遍历了一次。因为Reset()没有设置。遍历完第一次后,Position就在list末尾处了。第二次无法遍历。

 在内部调用Reset();在初始执行foreach遍历时执行Reset()

 知识点三 用yield return 语法糖实现迭代器

 本质上 当执行GetEnumerator()返回时,系统发现yield return.会帮助我们完成MoveNext()方法、以及得到Cureeent的内容。

 

 

 知识点四 用yield return 语法糖为泛型类实现迭代器

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值