List是C#中基于动态数组实现的泛型集合,支持快速随机访问、自动扩容和类型安全;核心操作包括初始化、增删查改、遍历转换与排序,各方法均有明确适用场景。

C# 中 List
初始化与添加元素
创建 List 时需指定具体类型,避免装箱拆箱,也杜绝运行时类型错误。
- 空列表: var list = new List
(); - 带初始容量(减少扩容次数): var list = new List
(10); - 初始化并赋值(C# 3.0+): var list = new List
{ "a", "b", "c" }; - 添加单个: list.Add("newItem");
- 批量添加: list.AddRange(otherList);
查找与判断存在性
别总用 for 循环遍历找元素——List 提供了语义清晰、性能良好的内置方法。
- 判断是否包含某值: list.Contains("target");(注意:引用类型默认用 Equals 比较)
- 查找首个匹配项: list.Find(x => x.Length > 5);
- 查找所有匹配项: list.FindAll(x => x.StartsWith("A"));
- 获取匹配项索引: list.FindIndex(x => x == "abc");(找不到返回 -1)
- 检查是否存在满足条件的元素: list.Exists(x => x % 2 == 0);
修改、删除与清空
删除操作要特别注意索引变化,避免“越界”或漏删;修改推荐直接通过索引赋值,高效又直观。
- 按索引修改: list[0] = "updated";
- 移除指定值(只删第一个匹配项): list.Remove("old");
- 按索引移除: list.RemoveAt(2);
- 移除满足条件的所有项: list.RemoveAll(x => x
- 清空全部: list.Clear();
遍历、转换与排序
优先使用 foreach 或 LINQ 方法,语义明确、不易出错;排序前确认数据可比较,必要时提供 IComparer 或 lambda。
- 安全遍历(不修改集合): foreach (var item in list) { ... }
- 转为数组: string[] arr = list.ToArray();
- 转为只读包装(防止意外修改): IReadOnlyList
readOnly = list.AsReadOnly(); - 升序排序: list.Sort();(T 需实现 IComparable)
- 自定义排序: list.Sort((a, b) => b.Length.CompareTo(a.Length));
- 反转顺序: list.Reverse();(就地反转)
基本上就这些——List









