C# 泛型集合详解与使用示例

需积分: 9 1 下载量 106 浏览量 更新于2024-09-14 收藏 85KB DOC 举报
"C# 泛型集合的实用性和创建方法" C# 泛型集合是面向对象编程中的一种高效工具,它极大地提高了代码的可读性和安全性。在C# 2.0版本之前,开发者通常使用ArrayList或者自定义继承自CollectionBase的集合类来存储数据,但这两种方式都有其局限性。ArrayList虽然方便,但因为存储的是Object类型,导致每次访问时都需要进行类型转换,降低了效率。而自定义集合类虽然提供了强类型,但需要为每种类型的集合编写单独的类,增加了编码工作量。 泛型的引入是C#语言的一个重要创新,它允许开发者定义泛型类、接口、方法和委托,这些泛型可以接受一种或多种类型参数,从而生成特定类型的实例。这就像一个模板,可以在运行时根据提供的类型参数来实例化。泛型不仅提高了代码的复用性,还通过编译时类型检查避免了类型转换带来的潜在错误。 在C#中,最常用的泛型集合是System.Collections.Generic命名空间下的List<T>。List<T>是一个动态大小的数组,可以容纳指定类型的对象。创建一个泛型List<T>集合的代码如下: ```csharp List<T> listOfT = new List<T>(); ``` 这里的"T"是类型参数,代表你想要存储的任何类型。例如,如果你想创建一个存储Person类对象的列表,你可以这样写: ```csharp class Person { private string _name; private int _age; public Person(string name, int age) { this._name = name; this._age = age; } public string Name => _name; public int Age => _age; } Person p1 = new Person("张三", 30); Person p2 = new Person("李四", 20); Person p3 = new Person("王五", 40); List<Person> people = new List<Person>(); people.Add(p1); people.Add(p2); people.Add(p3); ``` 在这个例子中,`List<Person>`就是一个泛型集合,它只允许存储Person类型的对象。你可以方便地使用Add方法向集合中添加对象,而无需进行类型转换。 除了List<T>,System.Collections.Generic命名空间还提供了其他泛型集合,如Dictionary<TKey, TValue>(键值对集合)、HashSet<T>(无序不重复元素集合)等,它们各自服务于不同的数据结构需求。 C#的泛型集合提供了高效、安全的数据存储方案,减少了类型转换的麻烦,提高了代码的可读性和可维护性。通过理解和熟练运用泛型集合,开发者可以写出更高质量的C#程序。