.NET Framework 4.0 中的 C# List<T> 类详解

需积分: 9 5 下载量 43 浏览量 更新于2024-07-22 收藏 85KB DOCX 举报
"C# 4.0 .Net Framework V4.0 的 List<T> 类" List<T> 类是 C# 中用于存储强类型对象的动态数组,它是 .NET Framework 4.0 部分的核心组件,属于 System.Collections.Generic 命名空间。这个类实现了多个接口,包括 IList<T>, ICollection<T>, IEnumerable<T>, IList, ICollection 和 IEnumerable,这使得它在处理数据集合时非常灵活。 **构造函数** List<T> 提供了几个构造函数,允许你在创建实例时初始化容量或填充已有集合的数据。例如,你可以创建一个指定初始容量的列表,或者通过一个现有的集合快速创建新列表。 **属性** List<T> 类包含若干属性,如 Count 属性,它返回列表中的元素数量,以及 Capacity 属性,显示当前分配的数组大小。可以通过修改 Capacity 来调整列表的内部容量,以优化性能。 **方法** List<T> 提供了许多用于操作和管理列表的方法: 1. `Add(T item)`:将一个元素添加到列表的末尾。 2. `Insert(int index, T item)`:在指定位置插入一个元素。 3. `RemoveAt(int index)`:删除指定索引处的元素。 4. `Clear()`:移除所有元素。 5. `Contains(T item)`:检查列表是否包含特定元素。 6. `IndexOf(T item)`:返回指定元素的第一个出现位置。 7. `Remove(T item)`:删除第一个匹配的元素。 8. `BinarySearch(T item)`:使用二分查找法搜索元素,需要列表已排序。 9. `Sort()`:对列表进行升序排序,基于元素类型的默认比较器。 10. `ToArray()`:将列表转换为数组。 **扩展方法** C# 中的 List<T> 还可以通过扩展方法获得额外的功能,例如 `ToList()`(从其他集合转换为 List<T>),`ForEach(Action<T> action)`(对列表中的每个元素执行操作)等。 **相等比较器与排序比较器** List<T> 在处理元素时,根据元素类型使用不同的比较器。对于相等性检查(如 Contains、IndexOf、LastIndexOf 和 Remove 方法),它会使用类型 T 实现的 IEquatable<T> 或 Object.Equals 方法。对于排序操作(如 BinarySearch 和 Sort 方法),如果类型 T 实现了 IComparable<T> 或非泛型 IComparable 接口,它会使用相应的 CompareTo 方法。如果没有默认比较器,就需要提供自定义的比较器或比较委托。 **索引访问与元素重复** 你可以通过整数索引访问 List<T> 中的元素,索引从零开始。列表允许存储 null 值(对于引用类型)以及重复的元素。 **性能注意事项** 在性能敏感的应用中,理解 List<T> 的工作原理很重要。例如,当添加元素导致容量超出时,List<T> 会自动重新分配更大的数组,这可能导致额外的内存开销。可以通过预估容量来减少这种开销。同时,如果知道列表需要保持排序状态,可以考虑使用 SortedList<T> 或其他排序集合。 List<T> 是 C# 中处理动态集合的强大工具,提供了丰富的功能和灵活性,但同时也需要注意其性能特性,以便在实际应用中做出最佳选择。