1.创建列表
(列表可以存储任何类型的数据,在创建列表对象的时候首先要指定你要创建的这个列表要存储什么类型的)(泛型)
//创建一维列表
//方法一
List<int> intList = new List<int>();//创建了一个空的列表 通过类型后面的<>来表示这个列表存储的数据的类型
//方法二
var intlist1 = new List<string>();
//方法三
var intlist2 = new List<int>(){1,2,3};//创建了一个列表,里面的初始值有三个分别为 1 2 3
//创建二维列表
先定义一个 类(含有多个属性) 或者一个 一维数组(含有多个变量)
public class dd
{
public string ImagePath;
public string ImageRow;
} dd p1 = new dd();
dd p2=new dd();p1.ImagePath = "1";
p1.ImageRow = "11";
p2.ImagePath = "2";
p2.ImageRow = "22";List<dd> rus = new List<dd>() { p1,p2 }
或者
List<dd> rus = new List<dd>() { new dd {ImagePath="1", ImageRow = "11" } , new dd {ImagePath="2", ImageRow = "22" } } ;
3.列表的常用属性方法
^^^^^^^^^^^^^^^^^^^^
1,Capacity获取容量大小
当容量不够用的时候,每次都会按照原来容量的2倍进行扩容。
我们可以通过Capacity属性获取和设置容量
注意容量和列表中元素个数的区别,容量是列表中用于存储数据的数组的长度通过Capacity 获取,
列表中的元素是我们添加进去需要管理的数据,通过Count获取
2,Add()方法添加元素(末尾处添加元素)
var scoreList = new List<int>();
scoreList.Add(12);
scoreList.Add(34);
结果{12,34}
3,Insert()方法插入元素
var scoreList = new List<int>(){100,200,300,100};
scoreList.Insert(3, -100);//向指定索引位置插入元素,原来的元素向后移动一位。插入索引不能超出索引范围,插入索引最大可为scoreList.Count
结果{100,200,300,-100,100}
4,[index]访问元素
5,Count属性访问元素个数
6,RemoveAt()方法移除指定位置的元素
var scoreList = new List<int>(){100,200,300,100};
scoreList.RemoveAt(1);//removeAt(index)填入要删除的索引
结果{100,300,-100,100}
7,IndexOf()方法取得一个元素所在列表中的索引位置
8,LastIndexOf()上面的方法是从前往后搜索,这个是从后往前搜索,搜索到满足条件的就停止,上面的两个方法,如果没有找到指定元素就返回-1
9,Sort()对列表中是元素进行从小到大排序
10,AddRange方法为添加整个目标list集合
C#编程开发过程中,List集合是时常使用到的集合对象,如果在List集合的操作中需要将1个List集合加入到另一个List集合的末尾,则可以使用List集合的AddRange方法来实现,AddRange方法签名为void AddRange(IEnumerable<T> collection),T是C#中的泛型语法,collection代表被加入到List集合末尾的目标集合。
举例如下,将list2集合加入到list1集合的末尾实现语句如下:
List<int> list1 = new List<int>() { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
List<int> list2 = new List<int>() { 11,12};
list1.AddRange(list2);
List集合中的AddRange方法和Add方法的不同之处在于,Add方法为在集合末尾添加单个元素对象,而AddRange方法为添加整个目标list集合。
11,Clear( ) 在List内移除所有元素
12,Contains( ) 测试一个元素是否在List内
13,CopyTo( ) 重载的公有方法,把一个List拷贝到一维数组内
14,Exists( ) 测试一个元素是否在List内
15,Find( ) 查找并返回List内的出现的第一个匹配元素
16,FindAll( ) 查找并返回List内的所有匹配元素
17,GetEnumerator( ) 重载的公有方法,返回一个用于迭代List的枚举器
18,Getrange( ) 拷贝指定范围的元素到新的List内
19,InsertRange( ) 在List内插入一组元素
20,Remove( ) 移除与指定元素匹配的第一个元素
21,RemoveRange( ) 移除指定范围的元素
- //从下标3开始,删除2个元素
- list.RemoveRange(3, 2);
22,Reverse( ) 反转List内元素的顺序
23,ToArray( ) 把List内的元素拷贝到一个新的数组内
ToArray()方法,将集合转换为数组
如我们将listNew集合转换为一个string数组
string[] str=listNew.ToArray();
24,trimToSize( ) 将容量设置为List中元素的实际数目
^^^^^^^^^^^^^^^^^^^^
4 二维列表查询并改变列表变量 Where
拓展:(接口 IEnumerator 迭代器 )
任何集合类对象都有一个GetEnumerator()方法,该方法可以返回一个实现了 IEnumerator接口的对象,这个返回的IEnumerator对象既不是集合类对象,也不是集合的元素类对象,它是一个独立的类对象。通过这个对象,可以遍历访问集合类对象中的每一个元素对象。