目录:
定义-迭代器是什么意思?
在C#上下文中,迭代器是一块代码,它返回集合或数组的值的有序序列。 它是使用迭代器块实现的成员函数,该迭代器块包含一个或多个包含“ yield”关键字的语句。
迭代器用于使包含集合或数组的容器类的使用者能够以更简单的方式使用“ foreach”语句遍历该集合。 它与强类型集合类一起使用,以迭代复杂的数据结构(例如二叉树),这些结构需要递归遍历并通过递归维护迭代状态。 迭代器的概念还用于在LINQ查询中实现延迟执行。
Techopedia解释了迭代器
迭代器基于一种设计模式,该设计模式提供了一种在不暴露集合的底层结构的情况下顺序遍历项目集合的元素的方法。 在创建支持“ foreach”语句的集合类时,它消除了手动实现“ IEnumerator”接口的繁琐任务。 编译器会生成实现IEnumerator接口的方法和属性所必需的中间语言代码,从而使语法更简单,代码大小减小并提高开发人员的生产率。
通常,迭代器类似于数据库游标,因为它提供对集合中数据元素的访问,但不执行迭代。 迭代器可以在C#中作为方法,运算符或get访问器实现。 例如,迭代器可用于遍历字符串集合以显示该集合中每个字符串的内容。
迭代器由IEnumerator接口表示,并由编译器使用以下方法实现:
- MoveNext:一种方法,该方法前进到集合的下一个元素并指示该集合的结束
- 当前:获取当前所指向元素的值的属性
- 处置:清理迭代




