-
using System
Array(数组)
- C#中所有数组的基类。
- 数组在内存中是连续存储的,所以它的索引速度非常快,赋值与修改元素也很简单。
- 在声明数组时的时候,必须同时指明数组的长度,过长会造成内存浪费,过短会造成数据溢出。
- System.Array.Resize这个泛型方法可以通过创建新的数组重置数组大小,多余的数据会舍弃。
-
using System.Collections 集合类库
ArrayList(动态数组)
- ArrayList中的元素以object的形式存储,是一个动态数组类型,相当于List<object>。
- 对于值类型来说,往ArrayList里添加和修改冤死都会引起装箱和拆箱的操作。
Hashtable(哈希表)
- Hashtable存储键值对,表中的键值对均为object类型。
SortedList(排序列表)
- SortedList存储的也是类型均为object的键值对。
- SortedList还可以用索引来访问该索引对应的键和值。(GetKey(int index); GetByIndex(int index);)
- SortedList有泛型类型SortedList<TKey, TValue>。
Stack(堆栈)
- Stack表示一个后进先出的对象集合。
- Stack中存储的数据为object数组,初始化时需要定义长度。
- Stack有泛型类型Stack<T>。
Queue(队列)
- Queue代表了一个先进先出的对象集合。
- Queue中存储的数据为object数组,初始化时需要定义长度。
- Queue有泛型类型Queue<T>。
BitArray(点阵列)
- 表示一个使用值true和false(1和0)组成的数组,该类型是一个封闭累。
- 下为BitArray的索引器。
public bool this[int index] { get; set; }
- 用整数构造BitArray可以直接得到该整数的二进制转换数列。
-
using System.Collections.Generic 泛型集合空间类库
List<T>(ArrayList的泛型等效类)
Queue<T>(Queue的泛型等效类)
Stack<T>(Stack的泛型等效类)
SortedList<T>(SortedList的泛型等效类)
DIctionary<TK,TV>(字典,Hashtable的泛型等效类)
HashSet<T>(哈希集)
- 一组不包含重复元素的集合,并且存储的元素没有特定顺序。
- 这个类提供了高性能的操作。
SortedSet<T>(序列集)
- 一组不包含重复元素的集合,但是拥有自动排序的功能。
- 可以直接取到集合中的最大值和最小值。
- 自定义的类型T需要构造比较器。
LinkedList<T>(双向链表)
SortedDictionary<T>(排序字典)
- 根据键进行排序的键值对集合。
-
using System.Collections.Specialized 强类型集合空间类库
NameValueCollection<T>
- 键和值均为字符串的集合。
- 拥有自然序列索引。
- 键可以重复,当键重复添加时,两者的值会直接合并。
NameValueCollection myCol = new NameValueCollection();
myCol.Add("red", "aaa");
myCol.Add("green", "bbb");
myCol.Add("blue", "ccc");
myCol.Add("red", "ddd");
Console.WriteLine(myCol["red"]);
result: