1. Array(数组):
- 应用场景:适用于存储固定大小且类型相同的数据集。数组的大小在创建时确定,并且之后不能改变。
- 示例:int[] myArray = new int[10]; 用于存储10个整数的数组。
2.ArrayList:
- 应用场景:适用于需要动态调整大小的列表,且列表中元素类型可以不同(非泛型版本)。由于性能原因,现在更推荐使用泛型集合如List。
- 示例:ArrayList myList = new ArrayList(); 用于存储任意类型的对象。
3.List:
- 应用场景:泛型列表,用于存储类型相同的数据集,并且大小可以动态调整。是ArrayList的泛型版本,提供了更好的类型安全和性能。
- 示例:List myList = new List(); 用于存储字符串的列表。
4.Dictionary<TKey, TValue>:
- 应用场景:用于存储键值对,其中每个键都是唯一的,并且与值相关联。适用于需要快速根据键检索值的情况。
- 示例:Dictionary<string, int> myDictionary = new Dictionary<string,
int>(); 用于存储字符串键和整数值的字典。
5.HashSet:
- 应用场景:用于存储唯一元素的集合,不允许重复。它提供了高性能的成员资格测试,因此常用于查找元素是否存在于集合中。
- 示例:HashSet myHashSet = new HashSet(); 用于存储唯一整数的集合。
6.LinkedList:
- 应用场景:双向链表,适用于需要频繁在列表中间插入或删除元素的情况。它提供了从头和尾添加或删除元素的O(1)时间复杂度。
- 示例:LinkedList myLinkedList = new LinkedList();
用于存储字符串的链表。
7.Queue 和 Stack:
- 应用场景:Queue用于实现队列数据结构,适用于FIFO(先进先出)场景,如任务队列或消息队列。Stack用于实现栈数据结构,适用于LIFO(后进先出)场景,如函数调用栈或撤销操作。
- 示例:Queue myQueue = new Queue(); 用于存储整数的队列;Stack
myStack = new Stack(); 用于存储字符串的栈。
8.SortedList<TKey, TValue> 和 SortedDictionary<TKey, TValue>:
- 应用场景:这些集合类型用于存储键值对,并根据键进行排序。SortedList在内部使用两个数组来维护键和值的列表,而SortedDictionary则使用平衡树(通常是红黑树)来提供更快的插入、删除和查找操作。
- 示例:SortedDictionary<string, int> mySortedDictionary = new
SortedDictionary<string, int>(); 用于存储按键排序的字符串键和整数值。