您的位置:首页 > 编程语言 > C#

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

2017-06-03 11:13 537 查看
在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 }


一、List<T>描述

1)、表示可通过索引访问的对象的强类型列表;提供用于对列表进行搜索、排序和操作的方法。2)、是ArrayList类的泛型等效类。3)、可以使用一个整数索引访问此集合中的元素;索引从 

零 开始。4)、可以接收null空引用(VB中的Nothing)。5)、允许重复元素

 

二、List<T>构造函数

List<T>()

初始化 List<T> 类的新实例,该实例为空并且具有默认初始容量(0)。

List<T>(IEnumerable<T>)

初始化 List<T> 类的新实例,该实例包含从指定集合复制的元素并且具有足够的容量来容纳所复制的元素。

List<T>(Int32)

始化 List<T> 类的新实例,该实例为空并且具有指定的初始容量。

  

三、List<T>属性

Capacity

获取或设置该内部数据结构在不调整大小的情况下能够容纳的元素总数。

Count

获取 List<T> 中实际包含的元素数。

 

 

四、List<T>方法

Add   

将对象添加到 List<T> 的结尾处。  

AddRange   

将指定集合的元素添加到 List<T> 的末尾。    

AsReadOnly   

返回当前集合的只读 IList<T> 包装。    

BinarySearch(T)   

使用默认的比较器在整个已排序的 List<T> 中搜索元素,并返回该元素从零开始的索引。  

BinarySearch(T, IComparer<T>)  

使用指定的比较器在整个已排序的 List<T> 中搜索元素,并返回该元素从零开始的索引。    

BinarySearch(Int32, Int32, T, IComparer<T>)  

使用指定的比较器在已排序 List<T> 的某个元素范围中搜索元素,并返回该元素从零开始的索引。    

Clear   

从 List<T> 中移除所有元素。    

Contains   

确定某元素是否在 List<T> 中。    

ConvertAll<TOutput>  

将当前 List<T> 中的元素转换为另一种类型,并返回包含转换后的元素的列表。    

CopyTo(T[])   

将整个 List<T> 复制到兼容的一维数组中,从目标数组的开头开始放置。  

  

Exists    

确定 List<T> 是否包含与指定谓词所定义的条件相匹配的元素。    

Find  

搜索与指定谓词所定义的条件相匹配的元素,并返回整个 List<T> 中的第一个匹配元素。  

FindIndex(Predicate<T>)    

搜索与指定谓词所定义的条件相匹配的元素,并返回整个 List<T> 中第一个匹配元素的从零开始的索引。  

ForEach  

对 List<T> 的每个元素执行指定操作。  

GetEnumerator    

返回循环访问 List<T> 的枚举器。  

IndexOf(T)  

搜索指定的对象,并返回整个 List<T> 中第一个匹配项的从零开始的索引。  

Insert   

将元素插入 List<T> 的指定索引处。

    

InsertRange   

将集合中的某个元素插入 List<T> 的指定索引处。    

LastIndexOf(T)   

搜索指定的对象,并返回整个 List<T> 中最后一个匹配项的从零开始的索引。    

Remove   

从 List<T> 中移除特定对象的第一个匹配项。    

Reverse()    

将整个 List<T> 中元素的顺序反转。    

Sort()    

使用默认比较器对整个 List<T> 中的元素进行排序。    

 

 

五、常用方法实例

(1)创建及初始化:

List<string> myList = new 

List<string>();//初始Capacity为 零List<string> myList2 = new 

List<string>(30); //初始Capacity为 30List<string> myList3 = new 

List<string>(new string[] { "1", "a", "2", "b" });//初始Capacity 为 

4,并且元素已被复制

 

(2)添加一个元素 List.Add(T item)

mlist.Add("d");

 

(3)添加集合元素

string[] Arr2 

={"f","g"."h"};mlist.AddRange(Arr2);

 

(4)在index位置添加一个元素 Insert(int index,T item)

mlist.Insert(1,"p");

 

(5)遍历List中元素

 

foreach(T element in mlist) 

T的类型与mlist声明时一样{  Console.WriteLine(element);}

 

(6)删除元素

 

List.Remove(T item) 

删除一个值mlist.Remove("a");

List.RemoveAt(int 

index);删除下标为index的元素mlist.RemoveAt(0);List.RemoveRange(int index,int 

count); 下标index开始,删除count个元素mlist.RemoveRange(3,2);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: