赞
踩
使用泛型可以定义泛型类、泛型接口、泛型方法等。在System.Collections.Generic命名空间中包含几个泛型集合类,List<T>和Dictionary<K,V>是其中非常重要的两种。本节主要学习这些系统提供的泛型集合的用法。
泛型最重要的应用就是集合操作,使用泛型集合可以提高代码重用性、类型安全和更佳的性能。List<T>的用法和ArrayList很相似,List<T>有更好的类型安全性,无须拆、装箱。定义一个List<T>泛型集合的语法如下:
List<T> 集合名=new List<T>();
泛型定义中,泛型类型参数"<T>"是必须指定的,其中的T是定义泛型类时的占位符,其并不是一种类型,仅代表某种可能的类型。在定义时T会被使用的类型代替。泛型集合List<T>中只能有一个参数类型,"<T>"中的T可以对集合中的元素类型进行约束。
注意:泛型集合必须实例化,实例化时和普通类实例化时相同,必须在后面加上"()"。
List<T>的添加、删除和检索等方法和ArrayList相似,但是不需要像ArrayList那样装箱和拆箱。示例如下:
- List<string> ls = new List<string>();//创建泛型集合ls
- ls.Add(“C罗"); //向泛型集合ls中添加元素
- ls.Add(“姆巴佩"); //向泛型集合ls中添加元素
- ls.Add(“哈兰德"); //向泛型集合ls中添加元素
List类综合应用实例:
- public static void Main()
- {
- List<string> clubs = new List<string>();
- clubs.Add("皇马");
- clubs.Add("巴萨saurus");
- clubs.Add("拜仁");
- clubs.Add("国米saurus");
- clubs.Add("米兰");
- clubs.Add("尤文");
- clubs.Add("曼联");
- clubs.Add("切尔西");
- clubs.Add("利物浦");
- foreach(string club in clubs)
- {
- Console.WriteLine(club);
- }
- Console.WriteLine("\nTrueForAll(EndsWithSaurus): {0}",
- clubs.TrueForAll(EndsWithSaurus));
- Console.WriteLine("\nFind(EndsWithSaurus): {0}",
- clubs.Find(EndsWithSaurus));
- Console.WriteLine("\nFindLast(EndsWithSaurus): {0}",
- clubs.FindLast(EndsWithSaurus));
- Console.WriteLine("\nFindAll(EndsWithSaurus):");
- List<string> sublist = clubs.FindAll(EndsWithSaurus);
- foreach(string club in sublist)
- {
- Console.WriteLine(club);
- }
- Console.WriteLine("\n{0} elements removed by RemoveAll(EndsWithSaurus).",clubs.RemoveAll(EndsWithSaurus));
- Console.WriteLine("\nList now contains:");
- foreach(string club in clubs)
- {
- Console.WriteLine(club);
- }
- Console.WriteLine("\nExists(EndsWithSaurus): {0}",
- clubs.Exists(EndsWithSaurus));
- }
- // Search predicate returns true if a string ends in"saurus".
- private static bool EndsWithSaurus(String s)
- {
- if ((s.Length > 5) &&(s.Substring(s.Length - 6).ToLower() == "saurus"))
- {
- return true;
- }
- else
- {
- return false;
- }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。