C#迭代器

枚举接口:IEnumerable和IEnumerator
枚举接口IEnumerable和IEnumerator​​​是迭代器模式(iterator pattern)​在C#中的实现​​​。它们实现在集合上进行简单迭代的效果。
1.IEnumerable接口定义了一个可以返回IEnumerator类型对象的方法:GetIEnumerator。
2.IEnumerator接口在它内部的字段和方法主要有三个:
1.current字段,它是只读(属性只有get)的。
2.MoveNext函数,对集合上实现循环迭代的效果。返回一个bool值,来表示是否可以继续迭代。
3.Reset函数,表示将枚举数设置为其初始位置,该位置位于集合中第一个元素之前。
迭代器在没有执行MoveNext之前函数是不会开始的,只有调用了第一次MoveNext迭代器才会开始运行。
迭代器运行之前的Current值是该类型的默认值,比如我们使用int类型,Current在MoveNext执行前的值就是0。
且在迭代器里的值在yield return后不会销毁,它会存在直至迭代器逻辑结束。
当迭代器逻辑运行到最后一个yield return,MoveNext返回值也是true,这样能保证最后一个yield return之后的逻辑能够顺利运行,当这最后的逻辑执行完,我们再次执行MoveNext才会是false。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值