zoukankan      html  css  js  c++  java
  • C#中IEnumerable和IEnumerator区别

    IEnumerator:是一个真正的集合访问器,提供在普通集合中遍历的接口,有Current,MoveNext(),Reset(),其中Current返回的是object类型。
    IEnumerable: 暴露一个IEnumerator(只包含一个抽象的方法GetEnumerator(),该方法返回一个可用于循环访问集合的IEnumerator对象),支持在普通集合中的遍历。
    IEnumerator<T>:继承自IEnumerator,有Current属性,返回的是T类型。
    IEnumerable<T>:继承自IEnumerable,暴露一个IEnumerator<T>,支持在泛型集合中遍历。

    //这个接口告知调方对象的子项可以枚举

    public interface IEnumerable

    {    

      IEnumerator GetEnumerator();

    }

    可以看到,GetEnumerator方法返回对另一个接口System.Collections.IEnumerator的引用。这个接口提供了基础设施,调用方可以用来移动IEnumerable兼容容器包含的内部对象。

    //这个接口允许调用方获取一个容器的子项

    public interface IEnumerator

    {    

      bool MoveNext();   //将游标的内部位置向前移动    

      object Current{get;}  //获取当前的项(只读属性)    

      void Reset();  //将游标重置到第一个成员前面

    }

  • 相关阅读:
    运行python脚本后台执行(转载)
    双积分式(A/D)转换器电路结构及工作原理
    SAR ADC简介
    [hdu-6395]Sequence 分块+矩阵快速幂
    [hdu-1272]小希的迷宫 并查集
    redhat7.2安全基线BI
    Oracle 12c RAC
    .gitlab-ci.yml简介
    gitlab
    Centos 7 Docker安装配置
  • 原文地址:https://www.cnblogs.com/anny-1980/p/4546193.html
Copyright © 2011-2022 走看看