zoukankan      html  css  js  c++  java
  • C#中的List<string>泛型类示例

    List<String> 和 ArrayList<String>的区别

     

    最近对这两个问题比较懵逼,关于ListArrayListList<String> list = new ArrayList<String>();

    好了,先搞明白List 和 ArrayList吧。

    List是一个接口,是Collection接口的一个子接口,是一个有序的集合。

    ArrayList是List的一个实现类,可以实现数组大小的可变,可以很方便的进行增加和删减数组内元素的操作。

    1 List<NameValuePair> paraList = new ArrayList<>();
    2 paraXmlList("cfgXml", dataxmlPath, paraList);
    3 paraList.add(new BasicNameValuePair("productid", productid));//(此处对List进行添加了数据)

    List list=new ArrayList();这种形式成为向上转型,ArrayList实现了List接口,可以看成是从List继承而来,一个子类的对象可以指向它父类。

    比如,狗从动物继承而来,狗是一只动物,所以狗的对象可以当作一只普通的动物来看待。

    然后再来说说List<String> list=new ArrayList<String>();为甚麼要声明为List 而不是ArrayList<String>?

    List是集合最大的父类,它包含了ArrayList。
    如果直接声明为ArrayList<String> list=new ArrayList<String>()这个也没有问题,但是不推荐,应为这样显得不是很灵活,因为List下除了ArrayList还有LinkList等他们都实现了List里面的方法。
    而声明成:List<String> list=new ArrayList<String>();这样的形式使得list这个对象可以有多种的存在形式

    比如要用链表存数据的话直接用LinkedList,使用ArrayList或者Vector直接通过list = new LinkedList<String>();就可以了,这样让list这个对象活起来了

    很多需求只能用一个list,内存有限,或者线程同步,不能有更多的集合对象,使得List总的接口来管理对象。

    C#中的List<string>泛型类示例

     

    在C#代码中使用一系列字符串(strings)并需要为其创建一个列表时,List<string>泛型类是一个用于存储一系列字 符串(strings)的极其优秀的解决办法。下面一起有一些List<string>泛型类的示例,一起来看看吧。

    List示例

      下面是一个使用C#创建一个新的一系列字符串的列表的示例,利用foreach语句循环使用其每一个字符串。请注意在代码片段的顶部添加所需的命名空间:“using System.Collections.Generic;”,List是该命名空间里的一个泛型类型。

    List<string>示例代码:

    复制代码
     1 using System;
    2 using System.Collections.Generic;
    3
    4 class Program
    5 {
    6 static void Main()
    7 {
    8 List<string> cities = new List<string>(); // List of city names
    9 cities.Add("San Diego"); // String element 1
    10 cities.Add("Humboldt"); // 2
    11 cities.Add("Los Angeles"); // 3
    12 cities.Add("Auburn"); // 4
    13
    14 // Write each city string.
    15 foreach (string city in cities)
    16 {
    17 Console.WriteLine(city);
    18 }
    19 Console.ReadKey();
    20 }
    21 }
    复制代码

    输出:

    San Diego
    Humboldt
    Los Angeles
    Auburn

      注意代码中的尖括号(angle brackets)。在声明语句中尖括号<和>将string类型围在中间,这意味着List仅能够存储String类型的元素。string类型可以是小写字体的string,也可以使大写字体的String。

      使用Collection实现初始化示例

      C#语法允许以一种更加清晰的办法来实现List的初始化。使用collection进行初始化,必须使用大括号{}包围作初始化用的值。下面示例中的注释说明了在执行该程序时编译器所使用的代码。

    List初始化示例代码:

    复制代码
     1 using System;
    2 using System.Collections.Generic;
    3
    4 class Program
    5 {
    6 static void Main()
    7 {
    8 List<string> moths = new List<string>
    9 {
    10 "African armyworm",
    11 "Mottled pug",
    12 "Purple thug",
    13 "Short-cloaked moth"
    14 };
    15 // The List moth contains four strings.
    16 // IL:
    17 //
    18 // List<string> <>g__initLocal0 = new List<string>();
    19 // <>g__initLocal0.Add("African armyworm");
    20 // // ... four more Add calls
    21 // List<string> moths = <>g__initLocal0;
    22 }
    23 }
    复制代码

      解释说明。可以看到字符串列表的初始化编译为调用一系列的Add方法。因此,二者执行起来是相似的。然而,不要超出你的需要来过多的初始化List,因为调用Add方法会增加你的资源消耗。

      Var示例:

      下面是一个关于var关键字如何与List<string>一起使用的示例。var是一个隐式关键字,它与使用全类型名称编译的结果是相同的(var是C# 3.0中新增加的一个关键字,在编译器能明确判断变量的类型时,它允许对本地类型进行推断)。

    使用var关键字的List示例:

    复制代码
     1 using System;
    2 using System.Collections.Generic;
    3
    4 class Program
    5 {
    6 static void Main()
    7 {
    8 var fish = new List<string>(); // Use var keyword for string List
    9 fish.Add("catfish"); // Add string 1
    10 fish.Add("rainbowfish"); // 2
    11 fish.Add("labyrinth fish"); // 3
    12 fish.Sort(); // Sort string list alphabetically
    13
    14 foreach (string fishSpecies in fish)
    15 {
    16 Console.WriteLine(fishSpecies);
    17 }
    18 Console.ReadKey();
    19 }
    20 }
    复制代码

    输出:

    catfish
    labyrinth fish
    rainbowfish

      注意。List<string>的Sort方法默认按照字母顺序对其字符串进行排序。它使用替换的方式实现排序,意味着你不必为排序的结果分配新的存储空间。

      总结

      上面是字符串类型的List的一些示例。因为C#语言中设计了泛型类型,这些示例中没有花费较大的装箱与拆箱过程,因此,这里的List与 ArrayList相比,在任何情况下其效率都要高一些。在这篇文章里,我们学习了声明并使用collection对字符串类型的List进行初始化,还 学习了其Sort方法,最后还有一个使用List作为参数的示例程序。

  • 相关阅读:
    mysql BETWEEN操作符 语法
    mysql IN操作符 语法
    mysql LIKE通配符 语法
    mysql TOP语句 语法
    mysql DELETE语句 语法
    mysql Update语句 语法
    mysql INSERT语句 语法
    mysql ORDER BY语句 语法
    mysql OR运算符 语法
    mysql AND运算符 语法
  • 原文地址:https://www.cnblogs.com/zhou0818/p/10442467.html
Copyright © 2011-2022 走看看