zoukankan      html  css  js  c++  java
  • 常用接口简析1---IEnumerable、IEnumerator简析

     常用接口的解析(链接)

          1.IEnumerable深入解析
          2.IComparable、IComparable接口解析
          3.IList、IList接口解析

         引言:

             IEnumerable和IEnumerable<T>接口在.Net中是非常重要的接口,它允许开发人员定义foreach语句功能的实现并支持非泛型方法的简单迭代,IEnumerable和IEnumerable<T>接口是.Net最基本的集合访问器。它定义了一组扩展方法,用来对集合中的元素进行遍历、过滤、排序等操作。

        IEnumerable简述:

              IEnumerable接口只包含一个抽象的方法GetEnumerator(),它返回一个可用于循环访问集合的IEnumerator对象。

        IEnumerator简述:

              他是一个真正的集合访问器,没有它,就不能使用foreach语句遍历集合或数组,因为只有IEnumerator对象才能访问集合中的项。

        1.IEnumerable、IEnumerator、IEnumerable<T>、IEnumerator<T>

              IEnumerable:返回一个IEnumerator,支持在普通集合中的遍历.

              IEnumerator:提供在普通集合中遍历的接口。

              

              IEnumerable<T>:继承自IEnumerable,返回一个IEnumerator<T>,支持在泛型集合中遍历。

              IEnumerator<T>:继承自IEnumerator,提供泛型集合中遍历的接口。

            IEnumerable接口:

    // 摘要:
        //     公开枚举器,该枚举器支持在非泛型集合上进行简单迭代。
        [ComVisible(true)]
        [Guid("496B0ABE-CDEE-11d3-88E8-00902754C43A")]
        public interface IEnumerable
        {
            // 摘要:
            //     返回一个循环访问集合的枚举器。
            //
            // 返回结果:
            //     可用于循环访问集合的 System.Collections.IEnumerator 对象。
            [DispId(-4)]
            IEnumerator GetEnumerator();
        }

            IEnumerable<T>接口:

     1 // 摘要:
     2     //     公开枚举器,该枚举器支持在指定类型的集合上进行简单迭代。
     3     //
     4     // 类型参数:
     5     //   T:
     6     //     要枚举的对象的类型。
     7     [TypeDependency("System.SZArrayHelper")]
     8     public interface IEnumerable<out T> : IEnumerable
     9     {
    10         // 摘要:
    11         //     返回一个循环访问集合的枚举器。
    12         //
    13         // 返回结果:
    14         //     可用于循环访问集合的 System.Collections.Generic.IEnumerator<T>。
    15         IEnumerator<T> GetEnumerator();
    16     }

             IEnumerator接口:

        // 摘要:
        //     支持对非泛型集合的简单迭代。
        [ComVisible(true)]
        [Guid("496B0ABF-CDEE-11d3-88E8-00902754C43A")]
        public interface IEnumerator
        {
            // 摘要:
            //     获取集合中的当前元素。
            //
            // 返回结果:
            //     集合中的当前元素。
            //
            // 异常:
            //   System.InvalidOperationException:
            //     枚举数定位在该集合的第一个元素之前或最后一个元素之后。
            object Current { get; }
    
            // 摘要:
            //     将枚举数推进到集合的下一个元素。
            //
            // 返回结果:
            //     如果枚举数成功地推进到下一个元素,则为 true;如果枚举数越过集合的结尾,则为 false。
            //
            // 异常:
            //   System.InvalidOperationException:
            //     在创建了枚举数后集合被修改了。
            bool MoveNext();
            //
            // 摘要:
            //     将枚举数设置为其初始位置,该位置位于集合中第一个元素之前。
            //
            // 异常:
            //   System.InvalidOperationException:
            //     在创建了枚举数后集合被修改了。
            void Reset();
        }

             IEnumerator<T>接口:         

     1     // 摘要:
     2     //     支持在泛型集合上进行简单迭代。
     3     //
     4     // 类型参数:
     5     //   T:
     6     //     要枚举的对象的类型。
     7     public interface IEnumerator<out T> : IDisposable, IEnumerator
     8     {
     9         // 摘要:
    10         //     获取集合中位于枚举数当前位置的元素。
    11         //
    12         // 返回结果:
    13         //     集合中位于枚举数当前位置的元素。
    14         T Current { get; }
    15     }
  • 相关阅读:
    MySQL 连接 触发器 函数 视图 存储过程
    Django的ORM2
    nmp安装vuejs
    Docker 技术入门与实践(第3版)笔记
    docker官方 入门
    centos 各目录介绍
    阿里云es 安装docker
    linux命令
    centos 7 mini 安装青岛OJ
    leetcode_304. 二维区域和检索
  • 原文地址:https://www.cnblogs.com/xiaowangzi1987/p/6729746.html
Copyright © 2011-2022 走看看