欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#中IEnumerable、ICollection、IList、List之間的區(qū)別

 更新時(shí)間:2024年07月26日 17:05:35   投稿:junjie  
這篇文章主要介紹了C#中IEnumerable、ICollection、IList、List之間的區(qū)別,本文分別分析了它的實(shí)現(xiàn)源碼,從而總結(jié)出了它們之間的關(guān)系和不同之處,需要的朋友可以參考下

首先我看看 IEnumerable:

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

IEnumerable<T> 實(shí)現(xiàn)IEnumerable接口方法,那IEnumberable做什么的,其實(shí)就提高可以循環(huán)訪問的集合。說白了就是一個(gè)迭代。

再來看看ICollection:

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

原來ICollection<T> 同時(shí)繼承IEnumerable<T>和IEnumerable兩個(gè)接口,按我的理解就是,ICollection繼續(xù)它們2個(gè)接口而且擴(kuò)展了方法,功能強(qiáng)多了。

我們繼續(xù)看IList:

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

靠 IList 繼承它們?nèi)齻€(gè)接口,怪不得功能這么多啊

最后來看看List:

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

這個(gè)時(shí)候大家仔細(xì)看看,它們都是接口,只有List 是類,不僅實(shí)現(xiàn)它們的接口,而且還擴(kuò)展了太多的方法給我利用。哇靠,幾乎所有功能都能實(shí)現(xiàn)了

按照功能排序:List<T> 《IList<T> 《ICollection<T>《IEnumerable<T>

按照性能排序:IEnumerable<T>《ICollection<T>《IList<T>《List<T>

相關(guān)文章

  • C#集合遍歷時(shí)刪除和增加元素的方法

    C#集合遍歷時(shí)刪除和增加元素的方法

    這篇文章主要介紹了C#集合遍歷時(shí)刪除和增加元素的方法,結(jié)合實(shí)例形式分析了C#針對(duì)集合元素的遍歷、添加與刪除等操作實(shí)現(xiàn)方法與注意事項(xiàng),需要的朋友可以參考下
    2016-06-06
  • VS2012 未找到與約束ContractName匹配的導(dǎo)出

    VS2012 未找到與約束ContractName匹配的導(dǎo)出

    這篇文章主要介紹了在更新的windows補(bǔ)丁后,Visual Studio 用戶可能無法打開或創(chuàng)建 C++ 或 JavaScript 文件或項(xiàng)目,小編的解決辦法,希望可以幫助到大家
    2018-04-04
  • 基于WPF實(shí)現(xiàn)驗(yàn)證碼控件

    基于WPF實(shí)現(xiàn)驗(yàn)證碼控件

    這篇文章主要介紹了如何利用WPF實(shí)現(xiàn)一個(gè)簡單的驗(yàn)證碼控件,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)或工作有一定幫助,需要的可以參考一下
    2022-08-08
  • C# 靜態(tài)變量與靜態(tài)方法實(shí)例研究

    C# 靜態(tài)變量與靜態(tài)方法實(shí)例研究

    寫了一個(gè)翻譯英漢單詞辭典的小程序,發(fā)現(xiàn)在調(diào)用幾千次的時(shí)候速度很慢
    2011-11-11
  • C#關(guān)鍵字之重寫override介紹

    C#關(guān)鍵字之重寫override介紹

    這篇文章介紹了C#關(guān)鍵字之重寫override,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-04-04
  • C#?wpf利用附加屬性實(shí)現(xiàn)界面上定義裝飾器

    C#?wpf利用附加屬性實(shí)現(xiàn)界面上定義裝飾器

    裝飾器是wpf中可以浮在控件上面的一種組件,我們通??梢杂脕韺?shí)現(xiàn)一些諸如控件拖動(dòng)點(diǎn)、提示框、自定義鼠標(biāo)等界面功能。本文主要是利用附加屬性實(shí)現(xiàn)界面上定義裝飾器,需要的可以參考下
    2022-12-12
  • 利用C#編寫掃雷游戲(附源碼)

    利用C#編寫掃雷游戲(附源碼)

    掃雷游戲相信不用給大家過多介紹,大家基本都玩過,下面這篇文章主要給大家介紹了關(guān)于如何利用C#編寫掃雷游戲的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2019-01-01
  • C#(.net)水印圖片的生成完整實(shí)例

    C#(.net)水印圖片的生成完整實(shí)例

    這篇文章主要介紹了C#(.net)水印圖片的生成方法,以一個(gè)完整實(shí)例的形式講述了水印圖片的生成技巧,非常實(shí)用,需要的朋友可以參考下
    2014-09-09
  • c#使用熱鍵實(shí)現(xiàn)程序窗口隱藏示例

    c#使用熱鍵實(shí)現(xiàn)程序窗口隱藏示例

    下面我們將演示如何通過熱鍵隱藏窗口,會(huì)用到DllImports of Win32 API、CallBacks/Delegates,定制事件與事件的句柄,大家參考使用吧友
    2014-01-01
  • C#實(shí)現(xiàn)將Doc文檔轉(zhuǎn)換成rtf格式的方法示例

    C#實(shí)現(xiàn)將Doc文檔轉(zhuǎn)換成rtf格式的方法示例

    這篇文章主要介紹了C#實(shí)現(xiàn)將Doc文檔轉(zhuǎn)換成rtf格式的方法,結(jié)合實(shí)例形式分析了C#針對(duì)word文件的讀取及文檔格式轉(zhuǎn)換相關(guān)操作技巧,需要的朋友可以參考下
    2017-07-07

最新評(píng)論