MVC学习笔记--IEnumerable的用法

时间:2023-03-08 19:31:44

IEnumerable的用法

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

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

IEnumerator对象有什么呢?它是一个真正的集合访器,没有它,就不能使用foreach语句遍历集合或数组,因为只有IEnumerator对象才能访问集合中的项,假如连集合中的项都访问不了,那么进行集合的循环遍历是不可能的事情了。

一、IEnumerable、IEnumerator、ICollection、IList、List

IEnumerator:提供在普通集合中遍历的接口,有Current,MoveNext(),Reset(),其中Current返回的是object类型。
IEnumerable: 暴露一个IEnumerator,支持在普通集合中的遍历。

IEnumerator<T>:继承自IEnumerator,有Current属性,返回的是T类型。
IEnumerable<T>:继承自IEnumerable,暴露一个IEnumerator<T>,支持在泛型集合中遍历。

1、IEnumerable接口
C# 代码   复制
MVC学习笔记--IEnumerable的用法
MVC学习笔记--IEnumerable的用法    // 摘要:
MVC学习笔记--IEnumerable的用法 // 公开枚举器,该枚举器支持在指定类型的集合上进行简单迭代。
MVC学习笔记--IEnumerable的用法 //
MVC学习笔记--IEnumerable的用法 // 类型参数:
MVC学习笔记--IEnumerable的用法 // T:
MVC学习笔记--IEnumerable的用法 // 要枚举的对象的类型。
MVC学习笔记--IEnumerable的用法 [TypeDependency("System.SZArrayHelper")]
MVC学习笔记--IEnumerable的用法 public interface IEnumerable<out T> : IEnumerable
MVC学习笔记--IEnumerable的用法 {
MVC学习笔记--IEnumerable的用法 // 摘要:
MVC学习笔记--IEnumerable的用法 // 返回一个循环访问集合的枚举器。
MVC学习笔记--IEnumerable的用法 //
MVC学习笔记--IEnumerable的用法 // 返回结果:
MVC学习笔记--IEnumerable的用法 // 可用于循环访问集合的 System.Collections.Generic.IEnumerator<T>。
MVC学习笔记--IEnumerable的用法 IEnumerator<T> GetEnumerator();
MVC学习笔记--IEnumerable的用法 }
MVC学习笔记--IEnumerable的用法

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

2、IEnumerator接口

C# 代码   复制
MVC学习笔记--IEnumerable的用法
MVC学习笔记--IEnumerable的用法public interface IEnumerator
MVC学习笔记--IEnumerable的用法
MVC学习笔记--IEnumerable的用法{
MVC学习笔记--IEnumerable的用法
MVC学习笔记--IEnumerable的用法 bool MoveNext(); //将游标的内部位置向前移动
MVC学习笔记--IEnumerable的用法
MVC学习笔记--IEnumerable的用法 object Current{get;} //获取当前的项(只读属性)
MVC学习笔记--IEnumerable的用法
MVC学习笔记--IEnumerable的用法 void Reset(); //将游标重置到第一个成员前面
MVC学习笔记--IEnumerable的用法
MVC学习笔记--IEnumerable的用法}
MVC学习笔记--IEnumerable的用法

 3、ICollection接口:ICollection<T> 同时继承IEnumerable<T>和IEnumerable两个接口

C# 代码   复制
MVC学习笔记--IEnumerable的用法
MVC学习笔记--IEnumerable的用法    // 摘要:
MVC学习笔记--IEnumerable的用法 // 定义操作泛型集合的方法。
MVC学习笔记--IEnumerable的用法 //
MVC学习笔记--IEnumerable的用法 // 类型参数:
MVC学习笔记--IEnumerable的用法 // T:
MVC学习笔记--IEnumerable的用法 // 集合中元素的类型。
MVC学习笔记--IEnumerable的用法 [TypeDependency("System.SZArrayHelper")]
MVC学习笔记--IEnumerable的用法 public interface ICollection<T> : IEnumerable<T>, IEnumerable
MVC学习笔记--IEnumerable的用法

4、IList接口

public interface IList<T> : ICollection<T>, IEnumerable<T>, IEnumerable

5、List的定义

public class List<T> : IList<T>, ICollection<T>, IEnumerable<T>, IList, ICollection, IEnumerable

原文链接:http://www.studyofnet.com/news/452.html