所属命名空间:System.Collections.Generic;
List<T>类是 ArrayList 类的泛型等效类。 该类使用大小可动态增加的一维数组实现 IList<T> 泛型接口。
泛型的好处: 它为使用 C#语言编写面向对象程序增加了极大的效力和灵活性。不会强行对值类型进行装箱和拆箱,或对引用类型进行向下强制类型转换,所以性能得到提高。
一、 List的基础、常用方法:
1、List<T> mList = new List<T>();
a.T为列表中元素类型,现在以string类型作为例子
如: List<string> list = new List<string>();
b.增加元素:list. Add(T item) // 添加一个元素
如: list.Add("陈明");
c.插入元素:Insert(int index, T item); // 在index位置添加一个元素
如: list.Insert(1, "李红");
d.删除元素: List. Remove(T item) //删除一个值
如:list.Remove("陈明");
List. RemoveAt(int index); //删除下标为index的元素
如.:list.RemoveAt(0);
List. RemoveRange(int index, int count);//从下标index开始,删除count个元素
如.:list.RemoveRange(3, 2); //注意:超出删除的范围会出错
//注:删除某元素后,list里面的元素自动进行调整,后面的元素自动跟进
e.判断是否存在 List:List. Contains(T item) //得到的结果是返回布尔值
f.排序:List. Sort () //默认是元素第一个字母按升序
g.给List里面元素顺序反转:
List. Reverse () //可以与List. Sort ()配合使用,达到想要的效果
h.遍历List中元素,建议使用foreach循环:
foreach (T element in mList) //T的类型与list声明时一样
{
Console.WriteLine(element);
}
i.List清空:List.Clear ()
如:list.Clear();
j.获得List中元素数目:
List.Count () //返回int值
k.添加数组进List:
string[] arr={"Ha","Hunter","Tom","Lily","Jay","Jim","Kuku","Locu" };
list.AddRange(arr);
2、List<T> testList =new List<T> (IEnumerable<T> collection);
以一个集合作为参数创建List
string[] arr= { "Ha", "Hunter", "Tom", "Lily", "Jay", "Jim", "Kuku", "Locu" };
List<string> list= new List<string>(arr);
3、List与数组的相互转换
a. 从string[]转List<string>
例如:string[] str={"aa","bb"};
List <string> list=new List<string>(str);
b. 从List<string>转string[]
例如:List<string> list=new List<string>;
String[] str=list.ToArray();