在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作为参数的示例程序。

文章引自:http://www.cnblogs.com/hans_gis/archive/2011/07/31/2122392.html

C#中的List<string>泛型类示例的更多相关文章

  1. 泛型学习第二天——C#中的List<string>泛型类示例

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

  2. C++11中的raw string literals

    作为一名C++书看得少得可怜的新手,我一直没有勇气去系统地学习一下C++ 11添加的新特性.不过,平日里逛论坛,阅读大犇们的博客,倒是了解了一些.比如,这个帖子: 如何绕过g++ 4.8.1那个不能在 ...

  3. 牛客网Java刷题知识点之泛型概念的提出、什么是泛型、泛型在集合中的应用、泛型类、泛型方法、泛型接口、泛型限定上限、泛型限定下限、 什么时候使用上限?泛型限定通配符的体现

    不多说,直接上干货! 先来看个泛型概念提出的背景的例子. GenericDemo.java package zhouls.bigdata.DataFeatureSelection; import ja ...

  4. Java中的break循环——通过示例学习Java编程(13)

    作者:CHAITANYA SINGH 来源:https://www.koofun.com//pro/kfpostsdetail?kfpostsid=24 break语句通常用于以下两种情况: (A)使 ...

  5. ioctl在socket中的一些用法及示例

    原文: http://blog.chinaunix.net/uid-20692625-id-3172833.html ----------------------------------------- ...

  6. 使用注解注入properties中的值的简单示例

    spring使用注解注入properties中的值的简单示例   1.在web项目的src目录下新建setting.properties的文件,内容如下: version=1 2.在spring的xm ...

  7. Java中如何将String转成Date

    Java中如何将String转成Date 最近在开发Json数据反序列化为Java对象的时候发现spring mvc 和 Jackson 对Date类型对支持不是特别好,虽然在Java对象序列化为Js ...

  8. java中特殊的String类型

    Java中String是一个特殊的包装类数据有两种创建形式: String s = "abc"; String s = new String("abc"); 第 ...

  9. C# 中怎么将string转换成int型

    int intA = 0;1.intA =int.Parse(str);2.int.TryParse(str, out intA);3.intA = Convert.ToInt32(str);以上都可 ...

随机推荐

  1. Configuring Squid as an accelerator/SSL offload for Outlook Web Access

    reference:http://wiki.squid-cache.org/SquidFaq/ReverseProxy/ Configuring Squid as an accelerator/SSL ...

  2. magento -- 添加新产品时状态默认为激活,库存状态默认为有库存

    添加新产品时状态默认为激活 打开文件/app/code/core/Mage/Catalog/Model/Product/Status.php,注释掉“Please Select” /** * Retr ...

  3. 我为什么要进国企----HP大中华区总裁孙振耀退休感言

    一.关于工作与生活 我有个有趣的观察,外企公司多的是25-35岁的白领,40岁以上的员工很少,二三十岁的外企员工是意气风发的,但外企公司40岁附近的经理人是很尴尬的.我见过的40岁附近的外企经理人大多 ...

  4. xp 安装 win7 64

    1.Win7文件准备 (1)下载Win7 的ISO文件到本机硬盘中 (2)用UltraISO等软件加载ISO文件,将win7目录下的bootmgr和boot文件夹复制到C盘根目录下,并在C盘 根目录下 ...

  5. Java 返回一个整数的各个数字之和的一种方法

    public static long sumDigits(long n){ long total=0; long number=n; while(number!=0){ total=total+num ...

  6. CentOS6下搭建OpenVPN服务器

    • OpenVPN简介 OpenVPN是一个用于创建虚拟专用网络(Virtual Private Network)加密通道的免费开源软件.使用OpenVPN可以方便地在家庭.办公场所.住宿酒店等不同网 ...

  7. 下载abap 源代码

    转自http://blog.sina.com.cn/s/blog_4d1570de0100pvhd.html *@------------------------------------------- ...

  8. struct和typedef struct的区别

    当typedef与结构结合使用时,会有一些比较复杂的情况,而且在C语言和C++里面有略有差别,因此从网上摘录了一些资料. 1 首先:      在C中定义一个结构体类型要用typedef:       ...

  9. POJ 3114 Countries in War(强连通)(缩点)(最短路)

                                    Countries in War Time Limit: 1000MS   Memory Limit: 65536K Total Sub ...

  10. ..c++中用c语言的输入法

    题目: 竞选时,要求选民在n个候选人中选择,n个人的名字为 A,B,C,D--连续n个大写字母,如果选择n个人名字之外的人员,则为废票.   统计时以输入'#'为结束标记.请按候选人的得票数目从大到小 ...