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 110         cities.Add("Humboldt");                   // 211         cities.Add("Los Angeles");                // 312         cities.Add("Auburn");                     // 413 14         // Write each city string.15         foreach (string city in cities)16         {17             Console.WriteLine(city);18         }19         Console.ReadKey();20     }21 }

输出:

San DiegoHumboldtLos AngelesAuburn

  注意代码中的尖括号(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 calls21         // 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 110         fish.Add("rainbowfish");       // 211         fish.Add("labyrinth fish");    // 312         fish.Sort();                   // Sort string list alphabetically13 14         foreach (string fishSpecies in fish)15         {16             Console.WriteLine(fishSpecies);17         }18         Console.ReadKey();19     }20 }

输出:

catfishlabyrinth fishrainbowfish

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

  总结

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

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

时间: 2024-11-04 11:23:47

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

泛型学习第二天——C#中的List&lt;string&gt;泛型类示例

在C#代码中使用一系列字符串(strings)并需要为其创建一个列表时,List<string>泛型类是一个用于存储一系列字符串(strings)的极其优秀的解决办法.下面一起有一些List<string>泛型类的示例,一起来看看吧. List示例 下面是一个使用C#创建一个新的一系列字符串的列表的示例,利用foreach语句循环使用其每一个字符串.请注意在代码片段的顶部添加所需的命名空间:“using System.Collections.Generic;”,List是该命名空间

C++11中的raw string literals

作为一名C++书看得少得可怜的新手,我一直没有勇气去系统地学习一下C++ 11添加的新特性.不过,平日里逛论坛,阅读大犇们的博客,倒是了解了一些.比如,这个帖子: 如何绕过g++ 4.8.1那个不能在宏里面使用R"(...)"的bug? 看到形如:R"" 这样的写法,相信学过Python的童鞋会感到似曾相识.Python支持所谓的“raw string”.Python文档这样介绍raw string: Both string and bytes literals m

在Python中使用gRPC的方法示例【h】

本文介绍了在Python中使用gRPC的方法示例,分享给大家,具体如下: 使用Protocol Buffers的跨平台RPC系统. 安装 使用 pip ? 1 2 pip install grpcio pip install grpcio-tools googleapis-common-protos gRPC由两个部分构成,grpcio 和 gRPC 工具, 后者是编译 protocol buffer 以及提供生成代码的插件. 使用 编写protocol buffer 使用 gRPC 首先需要做

计算DXFReader中多边形的面积代码示例

在DXFReader中, 一般的多边形的面积计算绝对值 其中K表是顶点的数目,它们的坐标,用于在求和和, 所以用下面的代码就可以计算出一个封闭的多段线的区域: view source print? 01 Dim Vertex As Object 02 Dim Entity As Object 03 Dim k As Long 04 Dim i As Long 05 Dim Area As Single 06 07 With DXFReader1 08 09  For Each Entity In

Python 3.X 调用多线程C模块,并在C模块中回调python函数的示例

由于最近在做一个C++面向Python的API封装项目,因此需要用到C扩展Python的相关知识.在此进行简要的总结. 此篇示例分为三部分.第一部分展示了如何用C在Windows中进行多线程编程:第二部分将第一部分的示例进行扩展,展示了如何在python中调用多线程的C模块:第三部分扩展了第二部分,增加了在C模块的线程中回调python的演示. 本文所用的环境为:64位Win7 + python 3.4 x86 + vs2010 一.windows下的C语言多线程程序 windows下多线程编程

JAVA中int、String的类型转换

int -> String int i=12345;String s="";第一种方法:s=i+"";第二种方法:s=String.valueOf(i);这两种方法有什么区别呢?作用是不是一样的呢?是不是在任何下都能互换呢? String -> int s="12345";int i;第一种方法:i=Integer.parseInt(s);第二种方法:i=Integer.valueOf(s).intValue();这两种方法有什么区别

java中如何将string 转化成long

1.Java中如何将string 转化成long long l = Long.parseLong([String]); 或 long l = Long.parseLong([String],[int radix]); long l = Long.valueOf("123").longValue(); 2.Long.ValueOf("String")与Long.parseLong("String")的区别 Long.ValueOf("St

Java中如何将String转成Date

Java中如何将String转成Date 最近在开发Json数据反序列化为Java对象的时候发现spring mvc 和 Jackson 对Date类型对支持不是特别好,虽然在Java对象序列化为Json数据的过程中提供了便利的注解,但是反序列化却没有,于是就引出了下面的问题,我需要手工的将字符串转换为Date类型的数据,java.text.SimpleDateFormat 为我们提供了这种转换的基础设施.如下列出了的格式化模式的简单定义,如果 ‘M’ 大于等于3位, 月份会显示为字母,否则是数

【shiro】UsernamePasswordToken中char[]替代String的安全性

shiro中UsernamePasswordToken类的源码中有一段注释很有意思. * <p>Note that this class stores a password as a char[] instead of a String * (which may seem more logical). This is because Strings are immutable and their * internal value cannot be overwritten - meaning