1. C# 集合体系深度解析
在.NET生态中,集合框架是每个开发者必须掌握的核心技能。不同于教科书式的理论讲解,我将结合十年企业级开发经验,带你看透集合背后的设计哲学和实战要点。从电商秒杀到实时游戏,从金融交易到社交应用,集合的选择直接影响着系统的吞吐量和响应速度。
关键认知:集合不是简单的数据容器,而是针对特定场景优化的算法实现。选错集合类型可能导致性能下降10倍以上。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 为什么需要集合
2.1 数组的局限性
数组作为最基础的数据结构,存在三大致命缺陷:
- 固定长度:声明后无法动态调整,扩容需手动创建新数组并拷贝数据
- 功能单一:缺乏搜索、过滤等业务常用操作
- 类型安全:非泛型数组可能导致运行时类型错误
csharp复制// 典型数组痛点示例
string[] oldArray = new string[3];
// 当需要添加第4个元素时...
string[] newArray = new string[6];
Array.Copy(oldArray, newArray, oldArray.Length);
2.2 集合的核心优势
现代业务系统需要:
- 动态扩容:自动处理内存管理
- 语义化API:Add/Remove等直观操作
- 类型安全:泛型保证编译时类型检查
- 场景优化:针对查询、排序等高频操作深度优化
3. 核心集合类型详解
3.1 List - 动态数组的最佳实践
csharp复制// 最佳实践示例
var products = new List<Product>(10000); // 预设容量
products.AddRange(fetchProducts()); // 批量操作
var cheapProducts = products.FindAll(p => p.Price < 100); // 条件查询
性能要点:
- 内部实现是数组+扩容机制
- 默认扩容策略:当前容量*2(当Count == Capacity时)
- 预设容量可避免多次扩容(实测10万次添加,预设容量快3倍)
常见误区:
- 在循环中频繁Add导致多次扩容
- 使用In
