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

10
Loading comments…