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定義了類型,所以是不能添加其它類型的數據的,保證了類型安全