列表的基本用法
创建列表
1 2 3 4 5 6
|
List<int> numbers = new List<int>();
List<string> names = new List<string> { "Alice", "Bob", "Charlie" };
|
添加元素
1 2 3
| numbers.Add(10); numbers.AddRange(new int[] { 20, 30 });
|
访问元素
1 2
| int first = numbers[0];
|
删除元素
1 2 3 4
| numbers.Remove(20); numbers.RemoveAt(0); numbers.Clear();
|
遍历列表
1 2 3 4 5
| foreach (int num in numbers) { Console.WriteLine(num); }
|
常用属性和方法
属性/方法 说明
Count 获取列表中的元素数量(实际存储的元素数)
Capacity 获取或设置列表的内部容量(动态扩容时的预分配大小)
Add(T item) 在列表末尾添加元素
Insert(int index, T item) 在指定位置插入元素
Contains(T item) 检查元素是否存在
IndexOf(T item) 返回元素的第一个匹配项的索引
Sort() 对列表元素排序(需元素实现 IComparable 接口或提供自定义比较器)
Find(Predicate<T> match) 查找第一个符合条件的元素
ForEach(Action<T> action) 对每个元素执行操作
示例代码
动态操作列表
1 2 3 4 5 6 7 8 9 10
| List<string> fruits = new List<string> { "Apple", "Banana" }; fruits.Add("Cherry"); fruits.Insert(1, "Mango"); fruits.Remove("Banana");
foreach (string fruit in fruits) { Console.WriteLine(fruit); }
|
使用 LINQ 查询列表
1 2 3 4
| List<int> numbers = new List<int> { 5, 2, 8, 1, 3 }; var evenNumbers = numbers.Where(n => n % 2 == 0).ToList(); Console.WriteLine(string.Join(", ", evenNumbers));
|
最佳实践
预分配容量
如果已知元素数量,初始化时指定容量以减少动态扩容的开销:
1 2 3 4
| List<int> list = new List<int>(100); 避免频繁插入/删除 若需要频繁在中间插入或删除元素,考虑使用 LinkedList<T>。
|
使用集合初始化器
简化代码:
1 2 3 4
| List<int> numbers = new List<int> { 1, 2, 3 }; 结合 LINQ 使用 LINQ 方法(如 Where, Select, OrderBy)简化复杂查询。
|
常见问题
如何高效复制列表?
1 2 3
| List<int> copy = new List<int>(originalList); List<int> copy2 = originalList.ToList();
|
如何将列表转换为数组?
1 2
| int[] array = numbers.ToArray();
|
总结
List<T> 是 C# 中最常用的集合类型之一,适用于需要动态调整大小的场景。通过灵活的方法和 LINQ 集成,它可以高效处理大多数集合操作。在使用时需注意容量管理和性能优化,结合具体需求选择合适的数据结构。