c#泛型与集合编程.pdf
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
C#泛型与集合编程是.NET框架中非常重要的部分,它们极大地增强了代码的复用性和类型安全性。在C#中,泛型允许我们创建可适应多种数据类型的类、接口和方法,而集合则是一组对象的容器,如列表、字典等。 1. **List<T>** - **List<T>** 是一个强类型化的泛型集合,用于存储同类型的元素。它实现了 `IList<T>`、`ICollection<T>` 和 `IEnumerable<T>` 接口,提供了丰富的操作方法。 - **Void ForEach(匿名委托)**:可以使用 `ForEach` 方法对列表中的每个元素执行操作,通过传递一个Action<T>类型的委托,这个委托通常是一个匿名方法或lambda表达式。 - **Converter<TInput, TOutput>**:这个类的匿名委托用于转换集合中的元素类型,比如将字符串列表转换为整数列表,可以通过 `ConvertAll` 方法实现。 2. **TrimExcess()**:List<T>的 `TrimExcess()` 方法可以优化内存使用,将容量调整为当前元素的实际数量,减少不必要的内存开销。 3. **Remove()**:`Remove()` 方法用于删除列表中的特定元素。如果元素不存在,它不会抛出异常,但不会有任何效果。 --- 4. **Dictionary<TKey, TValue>** - **字典集合** 是键值对的存储结构,键是唯一的,通过键可以快速访问对应的值,因为它是基于哈希表实现的,所以查找效率较高。 - **添加和修改**:通过 `=` 赋值可以直接添加键值对,如果键已存在,值会被更新。`Add` 方法用于添加新的键值对,如果键重复,会抛出 `ArgumentException`。 - **访问和遍历**:使用索引 `Dictionary对象[键名]` 来获取或设置值。在遍历字典时,可以使用 `KeyValuePair<TKey, TValue>` 类,例如 `foreach (KeyValuePair<TKey, TValue> kvp in 字典对象)`。 - **删除键值对**:`Remove(键值)` 方法用于移除指定键的键值对。 --- 5. **ArrayList** - **ArrayList** 是非泛型的集合,它存储 `Object` 类型的元素,不提供类型安全。默认容量为0,添加元素时会自动扩展容量,通常是当前容量的两倍。 - **TrimToSize()**:此方法将ArrayList的容量调整为其实际元素的数量,有助于节省内存。 --- 6. **创建列表泛型类** - 自定义泛型列表类通常是为了实现特定的功能或增强已有功能。定义此类时,需要继承 `IEnumerable<T>` 接口,并实现其 `GetEnumerator()` 方法,以便外部代码能够遍历列表。此外,还需要实现非泛型的 `IEnumerable` 接口,以便兼容旧版本的代码。 在C#中,泛型集合如List<T>和Dictionary<TKey, TValue>已经成为编写高效且类型安全代码的标准实践。而自定义泛型集合类则允许开发人员根据需求定制更复杂的逻辑,提升代码的灵活性和可维护性。理解并熟练运用这些概念,对于成为一名精通C#的开发者至关重要。
- 粉丝: 17
- 资源: 26万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助