1. 数组 (Array)
- 特点:固定大小、内存连续、访问速度快
- 使用场景:
- 需要高性能的固定大小集合
- 数值计算(如矩阵运算)
- 存储已知长度的数据(如配置文件参数)
2. List<T>
- 特点:动态数组、自动扩容、支持索引访问
- 使用场景:
- 需要频繁增删的集合(比数组更灵活)
- 数据缓存(如从数据库读取的记录集)
- 需要 LINQ 操作的场景
3. Dictionary<TKey, TValue>
- 特点:键值对、哈希表实现、快速查找
- 使用场景:
- 需要快速通过键查找值(如缓存系统)
- 配置项存储(如键值对配置)
- 数据分组统计
4. HashSet<T>
- 特点:唯一性保证、高性能集合运算
- 使用场景:
- 去重操作(如日志去重)
- 集合运算(并集、交集等)
- 快速判断元素是否存在
5. Queue<T>
- 特点:先进先出 (FIFO)
- 使用场景:
- 任务队列(如后台任务处理)
- 消息队列模拟
- 广度优先搜索 (BFS) 算法
6. Stack<T>
- 特点:后进先出 (LIFO)
- 使用场景:
- 撤销操作(如文本编辑器撤销栈)
- 深度优先搜索 (DFS) 算法
- 表达式求值(如括号匹配)
7. LinkedList<T>
- 特点:双向链表、高效插入/删除
- 使用场景:
- 频繁在中间插入/删除的场景
- 实现 LRU 缓存
- 需要前后遍历的集合
8. ObservableCollection<T>
- 特点:数据变更通知(实现 INotifyCollectionChanged)
- 使用场景:
- WPF/Silverlight 数据绑定
- 需要实时更新 UI 的集合
9. SortedDictionary/SortedList<TKey, TValue>
- 特点:按键排序的字典
- 使用场景:
- 需要按键排序的键值对
- 范围查询(如查找 10~20 之间的键)
10. Concurrent Collections(线程安全集合)
- 包含类型:
ConcurrentBag<T>
(无序集合)ConcurrentQueue<T>
ConcurrentStack<T>
ConcurrentDictionary<TKey, TValue>
- 使用场景: