009 Array, ArrayList, List等

 

1. 数组 Array
优点:比如说数组在内存中是连续存储的,所以它的索引速度是非常的快,而且赋值与修改元素也很简单
缺点:在数组的两个数据间插入数据也是很麻烦的。还有我们在声明数组的时候,必须同时指明数组的长度,数组的长度过长,会造成内存浪费,数组和长度过短,会造成数据溢出的错误。这样如果在声明数组时我们并不清楚数组的长度,就变的很棘手了。

2. 动态数组 ArrayList
ArrayList是.Net Framework提供的用于数据存储和检索的专用类,它是命名空间System.Collections下的一部分。它的大小是按照其中存储的数据来动态扩充与收缩的。所以,我们在声明ArrayList对象时并不需要指定它的长度。
ArrayList继承了IList接口,所以它可以很方便的进行数据的添加,插入和移除.
例:

ArrayList list = new ArrayList();

//新增数据
list.Add("abc");
list.Add(123);

//修改数据
list[2] = 345;

//移除数据
list.RemoveAt(0);

//插入数据
list.Insert(0, "hello world");

 


3. 泛型 List
正是因为ArrayList存在不安全类型与装箱拆箱的缺点,所以在C#2.0后出现了泛型的概念。而List类是ArrayList类的泛型等效类。它的大部分用法都与ArrayList相似,因为List类也继承了IList接口。最关键的区别在于,在声明List集合时,我们同时需要为其声明List集合内数据的对象类型。
数据类型安全!
例:

List<int> list = new List<int>();

//新增数据
list.Add(123);

//修改数据
list[0] = 345;

//移除数据
list.RemoveAt(0);

 

4. 辞典 Dictionary
按照“(指定类型的)键:(指定类型的)值”存储和查询信息。
数据类型安全!
例:

Dictionary<int, string> dic = new Dictionary<int, string>();

dic.Add(1, "001");
dic.Add(2, "002");
dic.Add(3, "003");

Console.WriteLine(dic[1]);
Console.WriteLine(dic[2]);
Console.WriteLine(dic[3]);

 

5. 哈希表 Hashtable
按照“(不指定类型的)键:(不指定类型的)值”存储和查询信息
数据类型不安全!

Collections的其他类型
参见:
https://www.runoob.com/csharp/csharp-collection.html

posted @ 2020-09-08 09:47  Transcog  阅读(116)  评论(0)    收藏  举报