MVC學習筆記--IEnumerable的用法


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# 代碼    復制

    // 摘要:  // 公開枚舉器,該枚舉器支持在指定類型的集合上進行簡單迭代。  //  // 類型參數:  // T:  // 要枚舉的對象的類型。  [TypeDependency("System.SZArrayHelper")]  public interface IEnumerable<out T> : IEnumerable  {  // 摘要:  // 返回一個循環訪問集合的枚舉器。  //  // 返回結果:  // 可用於循環訪問集合的 System.Collections.Generic.IEnumerator<T>。  IEnumerator<T> GetEnumerator();  } 

 

可以看到,GetEnumerator方法返回對另一個接口System.Collections.IEnumerator的引用。這個接口提供了基礎設施,調用方可以用來移動IEnumerable兼容容器包含的內部對象。

 

2、IEnumerator接口

 
C# 代碼    復制

public interface IEnumerator  {   bool MoveNext(); //將游標的內部位置向前移動   object Current{get;} //獲取當前的項(只讀屬性)   void Reset(); //將游標重置到第一個成員前面  } 

 

 3、ICollection接口:ICollection<T> 同時繼承IEnumerable<T>和IEnumerable兩個接口

 
C# 代碼    復制

    // 摘要:  // 定義操作泛型集合的方法。  //  // 類型參數:  // T:  // 集合中元素的類型。  [TypeDependency("System.SZArrayHelper")]  public interface ICollection<T> : IEnumerable<T>, 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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM