C#基礎List與ArrayList


List與ArrayList的區別

1.List因為指定了類型所以不存在裝箱與拆箱的問題;ArrayList是先將類型轉為object類型(裝箱)才能插入到集合里,然后讀取時再轉為相對應的類型(拆箱)

2.list只能存儲同一種類型的數據;ArrayList可以存儲多種不同的數據類型

3.list因為不需要裝箱和拆箱,所以效率高;ArrayList效率低

4.List在使用時候需要導入的using指令為using System.Collections.Generic;ArrayList在使用的時候需要導入的using指令為using System.Collections;

5.List屬於泛型集合 ArrayList屬於非泛型集合

6.ArrayList存在類型安全問題,開發中能不用就不用

例子

List:

var list = new List<int>();

list.Add(100);
//list.Add("100");//無法進行類型轉換
var num = list[0];
foreach (var item in list)
{
     Console.WriteLine(item);
}
Console.ReadLine();

ArrayList:

var list = new ArrayList();

list.Add(100);//裝箱
list.Add("100");//裝箱
int num = (int)list[0];//拆箱--不進行強制轉換,返回的是object類型
foreach (var item in list)
{
    Console.WriteLine(item);
}
Console.ReadLine();

 

ArrayList類型安全:

var list = new ArrayList();

list.Add(100);
list.Add("string");

list.Add(new MyClass());//添加對象

foreach (int item in list)
{
    Console.WriteLine(item);
}
Console.ReadLine();

集合中的元素無法都強制轉為int,所以會拋出錯誤

而在泛型類List<T>中T定義了類型,所以是不能添加其它類型的數據的,保證了類型安全

 


免責聲明!

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



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