C# —— IList, ArrayList與List的區別詳解

來源:互聯網
上載者:User

標籤:style   blog   http   java   color   strong   

共同點:

   IList, List , ArrayList 通俗一點來講就是廣義的數組,C#裡面稱之為集合。不同於一般的狹義的數組,它們可以存放任意類型的東西,在申明或者賦值的時候指定。 比如你寫了一個類 Cake,然後想有一個結構來存放很多Cake的執行個體,那就可以用他們。     區別:   IList與List 通俗一點講,只能存放同一類型的元素。   比如聲明的時候 聲明為List<Cake> cakes=new List<Cake>(); 那麼就只能用放cake的執行個體。   在從cakes這個變數中取出元素的時候,取到的直接就是Cake類型。不需要做強行的轉換,所以效能較好。    如果想要讓一個‘數組’存放各種類型的執行個體,比如有Cake,Juice, Bread,那麼就用ArrayList   ArrayList food=new ArrayList();注意這裡沒有指定它裝的是什麼類型的元素,所以可以隨便裝咯~當然,好處不能全讓你占完了。在‘取’的時候就要麻煩一點了ArrayList裡元素預設是 Object類型的,所以需要強制轉換一下,在大資料時效能較差。
再來說IList和List的區別:我的理解是,IList是一個介面,而List是一個確定的類。介面,當然就需要你去實現它的函數咯,如果你想這些函數有自己的特色,那麼就自己寫一個類去實現吧!然後聲明的時候:IList<類型>kk=new 你實現的類名<類型>();當然你可以寫成:IList<類型>kk=new List<類型>();相當於List實現了IList (事實上C#API中是這樣定義的) 如果你寫成 List<類型>kk=new List<類型>();那就意味著你的代碼,那些操作List的函數不能有絲毫改變,你得按規定辦事。寫好是什麼,你就用什麼。  用法:以上三個集合的用法都很相似,跟Java也很相似假如有一個List<Cake> cakes增、刪、改、查的方法:
     cakes.Add(Cake t);//增     cakes.Remove(int index);//刪     cakes.Remove(Cake t);//刪     cakes[]=//修改的資料  //查或者改

 註:轉載自新浪部落格  http://blog.sina.com.cn/s/blog_6cb117430100o0ul.html

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.