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

浙公网安备 33010602011771号