当前位置:   article > 正文

C#入门及进阶|数组和集合(十四):使用泛型

C#入门及进阶|数组和集合(十四):使用泛型

        使用泛型可以定义泛型类、泛型接口、泛型方法等。在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那样装箱和拆箱。示例如下:

  1. List<string> ls = new List<string>();//创建泛型集合ls
  2. ls.Add(“C罗"); //向泛型集合ls中添加元素
  3. ls.Add(“姆巴佩"); //向泛型集合ls中添加元素
  4. ls.Add(“哈兰德"); //向泛型集合ls中添加元素

        List类综合应用实例:

  1. public static void Main()
  2. {
  3. List<string> clubs = new List<string>();
  4. clubs.Add("皇马");
  5. clubs.Add("巴萨saurus");
  6. clubs.Add("拜仁");
  7. clubs.Add("国米saurus");
  8. clubs.Add("米兰");
  9. clubs.Add("尤文");
  10. clubs.Add("曼联");
  11. clubs.Add("切尔西");
  12. clubs.Add("利物浦");
  13. foreach(string club in clubs)
  14. {
  15. Console.WriteLine(club);
  16. }
  17. Console.WriteLine("\nTrueForAll(EndsWithSaurus): {0}",
  18. clubs.TrueForAll(EndsWithSaurus));
  19. Console.WriteLine("\nFind(EndsWithSaurus): {0}",
  20. clubs.Find(EndsWithSaurus));
  21. Console.WriteLine("\nFindLast(EndsWithSaurus): {0}",
  22. clubs.FindLast(EndsWithSaurus));
  23. Console.WriteLine("\nFindAll(EndsWithSaurus):");
  24. List<string> sublist = clubs.FindAll(EndsWithSaurus);
  25. foreach(string club in sublist)
  26. {
  27. Console.WriteLine(club);
  28. }
  29. Console.WriteLine("\n{0} elements removed by RemoveAll(EndsWithSaurus).",clubs.RemoveAll(EndsWithSaurus));
  30. Console.WriteLine("\nList now contains:");
  31. foreach(string club in clubs)
  32. {
  33. Console.WriteLine(club);
  34. }
  35. Console.WriteLine("\nExists(EndsWithSaurus): {0}",
  36. clubs.Exists(EndsWithSaurus));
  37. }
  38. // Search predicate returns true if a string ends in"saurus".
  39. private static bool EndsWithSaurus(String s)
  40. {
  41. if ((s.Length > 5) &&(s.Substring(s.Length - 6).ToLower() == "saurus"))
  42. {
  43. return true;
  44. }
  45. else
  46. {
  47. return false;
  48. }
  49. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/158831
推荐阅读
相关标签
  

闽ICP备14008679号