C# # 泛型集合归纳总结
# 泛型集合归纳总结
## 1. 集合与数组的比较
- 集合(Collection)是用来存放和管理一组相关数据的容器。
- 数组也是集合的一种,但结构相对固定(长度不可变),集合类型更灵活。
- 泛型集合实现了 `System.Collections.Generic` 命名空间下的 `IEnumerable<T>` 接口,可通过 `foreach` 迭代。
## 2. 常用集合类型对照表
| 非泛型类 | 泛型类 | 说明 |
|----------------------|---------------------------------|--------------------------|
| ArrayList | List<T> | 动态数组 |
| Hashtable | Dictionary<TKey, TValue> | 键值对集合 |
| CollectionBase | Collection<T> | 集合基底抽象类 |
| Queue | Queue<T> | 先进先出队列 |
| Stack | Stack<T> | 后进先出堆栈 |
## 3. 常用泛型集合接口与类
| 泛型集合/接口 | 说明 |
|-------------------------------|----------------------------------------------------|
| ICollection<T> | 集合管理方法接口 |
| IComparer<T> | 比较两个对象的方法接口 |
| IDictionary<TKey, TValue> | 键/值对泛型集合接口 |
| IEnumerable<T> | 支持枚举的集合接口 |
| IList<T> | 支持索引访问的集合接口 |
| Comparer<T> | 提供比较功能的基类 |
| Dictionary<TKey, TValue> | 键/值对集合类 |
| LinkedList<T> | 双向链表集合类 |
| List<T> | 支持索引访问的强类型集合,提供查找/排序/管理等方法 |
| SortedList<TKey, TValue> | 按键排序的键/值集合 |
## 4. 索引键/值(Key/Value)集合的特点
- 项目可以通过「索引」(index) 或「索引键」(key) 存取。
- Dictionary<TKey, TValue> 采用「键/值」配对,常用成员如下:
| 成员 | 说明 |
|---------------------|----------------------------------------------------|
| Comparer | 获取比较器,判断键是否相等 |
| Count | 集合中键值对的数量 |
| Items[TKey] | 通过键获取或设置对应的值 |
| Keys | 获取所有键的集合 |
| Values | 获取所有值的集合 |
| Add() | 添加新的键值对 |
| Clear() | 清空所有键值对 |
| ContainsKey() | 判断是否包含特定键 |
| ContainsValue() | 判断是否包含特定值 |
| GetEnumerator() | 获取可遍历集合的枚举器 |
| Remove() | 移除指定键的键值对 |
| TryGetValue() | 尝试通过键获取对应值,避免异常 |
## 5. 建议
- **优先使用 System.Collections.Generic 命名空间的泛型集合类,可以获得更好的类型安全性和性能。**
- **键/值集合如 Dictionary<TKey, TValue> 在需要快速查找、插入或删除元素时非常高效。**
---
如需具体代码示例或某个集合的详细用法,可继续提问!
Posted Jun 3, 2025, 4:00 AM UTC