迭代器

作者: 郑行_aover | 来源:发表于2019-05-20 19:15 被阅读0次

    什么是迭代器:(遍历数据结构用的)

    迭代器就是对数据结构遍历,如同for循环对数组遍历一样。对各种集合提供一个统一的遍历接口.

    迭代器是一个对象,他的工作就是遍历并选择序列中的对象,而客户端程序员不需要知道该序列底层结构。

    迭代器是一种检查容器内元素并遍历元素的可带泛型数据类型。

    迭代器是个所谓的复杂的指针,具有遍历复杂数据结构的能力。

    迭代器功能:

    遍历类中的数据结构。

    迭代器使开发人员能够在类或结构中支持foreach迭代,而不必整个实现IEnumerable或者IEnumerator接口。只需提供一个迭代器,即可遍历类中的数据结构。当编译器检测到迭代器时,将自动生成IEnumerable接口或者IEnumerator接口的Current,MoveNext和Dispose方法。

    迭代器特点:

    1.迭代器是可以返回相同类型值的有序序列的一段代码;

    2.迭代器可用作方法、运算符或get访问器的代码体;

    3.迭代器代码使用yield    return语句依次返回每个元素,yield break将终止迭代;

    4.可以在类中实现多个迭代器,每个迭代器都必须像任何类成员一样有惟一的名称,并且可以在foreach语句中被客户端,代码调用如下所示:foreach(int x in SimpleClass.Iterator2){};

    5.迭代器的返回类型必须为IEnumerableIEnumerator中的任意一种;

    6.迭代器是产生值的有序序列的一个语句块,不同于有一个 或多个yield语句存在的常规语句块;

    7.迭代器不是一种成员,它只是实现函数成员的方式,理解这一点是很重要的,一个通过迭代器实现的成员,可以被其他可能或不可能通过迭代器实现的成员覆盖和重载

    8.迭代器块在C#语法中不是独特的元素,它们在几个方面受到限制,并且主要作用在函数成员声明的语义上,它们在语法上只是语句块而已;

    9.yield关键字用于指定返回的值。到达yield  return语句时,会保存当前位置。下次调用迭代器时将从此位置重新开始执行。 迭代器对集合类特别有用,它提供一种简单的方法来迭代不常用的数据结构(如二进制树)。

    相关文章

      网友评论

          本文标题:迭代器

          本文链接:https://www.haomeiwen.com/subject/arqyjqtx.html