C# List的详细用法

前言:编程

   List泛型集合是C#编程中的常常使用的集合之一,相对数组它能够动态的添加元素而不是声明的时候就必须指定大小。相对于ArrayList集合和Hashtable集合的优点是其元素的数据类型能够肯定。而不是默认的父类类型object。数组


List泛型集合的声明与元素添加spa


1.List泛型集合的声明:
List<数据类型> 变量名=new list<数据类型>();
2.List泛型集合的声明案例:
//声明一个List泛型集合的变量listNew
List<string> listNew=new List<string>();
注意:
1,以上代码声明的是一个string类型的泛型集合,其元素必须都为string型。
2,能够声明其余元素的泛型集合,只须要将string改为对应类型即可。
3.List泛型集合添加元素的Add()方法:
代码案例:为第二步声明的集合添加五个元素:
listNew.Add("一号元素");
listNew.Add("二号元素");
listNew.Add("三号元素");
listNew.Add("四号元素");
listNew.Add("五号元素");
说明:
1,List泛型集合只能使用Add()方法添加元素,不能直接指定下标赋值如:“listnew[0]="一号元素";”这样的语句是不合法的。由于List泛型集合在声明以后没有添加元素以前是空的,直接指定下标赋值会致使索引超出范围。
2,一旦元素添加成功,指定下标修改集合中的元素,如在这个声明例子中咱们能够将"二号元素"改为任何字符串,如“你好”。
listNew[1]="你好";
3,List泛型集合和数组同样,其下标是从0开始的。
由于元素是字符串,咱们也能够添加一个字符串数组在集合中,使用AddRange()方法即可:
案例)为listNew集合添加一个字符串数组
代码:
//声明一个字符串数组,有三个字符串元素
string[] str=new string[]{"六号元素","七号元素","八号元素"};
//使用AddRange()方法将元素添加到集合中
listNew.AddRange(str);
//添加成功
添加完成以后该集合便有了8个元素。
排序


List泛型集合的经常使用属性索引


1.Count属性
返回List泛型集合中元素的数量。
如咱们对上面已经添加过元素的集合得到其Count属性值
Console.WriteLine(listNew.Count); //输出ListNew集合的元素数量
输出值为:5
2.Capacity属性
返回在不增长大小的状况下目前List泛型集合的容量
List泛型集合在添加元素的时候容量是变化的,其过程(原理)以下:
当添加元素的时候集合的容量不足以容纳全部元素就会自动增长目前元素数一倍的容量。
因此在上面的例子中listNew集合的容量的增长过程以下:
添加第一个元素的时候Capacity的值为1;
添加第二个元素的时候Capacity的值为2;
添加第三个元素的时候Capacity的值为4;
添加第四个元素的时候Capacity的值为4;
添加第五个元素的时候Capacity的值为8;
ci


List泛型集合的经常使用方法:字符串


1.Add()方法,添加元素的方法,前面已经讲过
2.Clear()方法,无返回值,清空集合中的全部元素
案例:清空ListNew集合中的全部元素
listNew.Clear();
3.Contains()方法,返回布尔型数据,参数为集合中元素的数据类型
功能:检查集合中是否存在某元素
案例:检查listNew集合中是否存在字符串元素"一号元素"。
代码:listNew.Contains("一号元素");
返回值为:true。
4.Equals()方法
比较两个List泛型集合是否相等
举例,比较listNew集合与listold集合是否相等:
代码:listNew.Equals(listold); //本人就不声明listold集合了,理解Equals()方法便可。由于不经常使用。
string

5.Indexof()返回值为int,从索引位置0开始查找元素,并获得索引值
好比咱们要在listNew集合中查找元素"四号元素"的第一个索引位置(考虑到有多个"四号元素的状况")
代码:
listNew.Indexof("四号元素");
返回值为:3。
6.Insert()方法,插入元素
如咱们在listNew集合的索引位置3上插入"三点五号元素"
listNew.Insert(3,"三点五号元素");
插入后元素数量变为增长了1,原来索引3位置上的元素在索引位置4上了,后面的元素所有向后移动了一格。
7.Remove()方法,删除指定元素
如咱们删除刚刚添加的"三点五号元素"
代码:listNew.Remove("三点五号元素");
删除这个元素以后后面的元素会上移一个索引位置
8.RemoveAt()方法,根据索引位置删除元素
如:咱们删除当前三号索引位置处的元素
代码:listNew.RemoveAt(3);
删除这个元素以后后面的元素会上移一个索引位置。
9.Reserve()方法,将集合中的全部元素反向排序
如,咱们将listNew集合中的全部元素反向排序
代码:listNew.Reserve();
反向排序以后集合中元素的索引会有改变
10.ToArray()方法,将集合转换为数组
如咱们将listNew集合转换为一个string数组
string[] str=listNew.ToArray();

it