当我们有很多类型⼀样的数据的时候,前⾯我们⼀般使⽤数组来进⾏管理,但是这样有个
缺点就是数组的⼤⼩是固定的。
如果我们很多类型⼀样的数据,⽐如游戏得分,我们可以集合类来进⾏管理,⽐如列表List,我们可以使⽤列表List很⽅便的添加数据,删除数据
还有其他对数据的操作。
1、创建列表
列表可以存储任何类型的数据,在创建列表对象的时候⾸先要指定你要创建的这个列表要存储什么类型的(泛型)
c#List<int> scoreList = new List<int>();
new List<int>(){1,2,3}
new List<string>(){"one","two"}
var scoreList = new List<int>();
2、往列表中插⼊数据
c#scoreList.Add(12);
scoreList.Add(45);
3、如何取得列表中的数据?
列表中的数据跟数组有点相似,索引从0开始 ,可以通过索引来访问
c#Console.WriteLine(scoreList[0]);//访问添加到列表中的第⼀个数据
List<int> list = new List<int>() { 56, 23, 894, 32, 5623, 32,4573 };
list.Insert(3, 800); //在索引3的位置前插入800
list.RemoveAt(2); //移除索引2的位置元素
提示
当把一个对象当作字符串来使用时,就会调用字符串ToString方法
比如:命名空间.类
c#Program p = new Program();
//输出都一样
Console.WriteLine(p.ToString());
Console.WriteLine(p);
1、列表内部数据是使⽤数组进⾏的存储,⼀个空的列表内部会有⼀个⻓度为0的数组,当给列表中添加元素的时候,列表的容量会扩⼤为4,如果添加第5个的时候,列表的⼤⼩会重新设置为8,如果添加第9个元素,列表容量会扩⼤为16,依次增加。
当列表的中的容量发⽣改变的时候,它会创建⼀个新的数组,使⽤Array.Copy()⽅法将旧数组中的元素复制到新数组中。
为了节省时间,如果事先知道要存储的数据的个数,就可以利⽤列表的构造函数指定列表的容量⼤⼩,⽐如
c#List<int> intlist = new List<int>(10);//创建了⼀个初始容量为10的列表
当容量不够⽤的时候,每次都会按照原来容量的2倍进⾏扩容。
我们可以通过Capacity属性获取和设置容量
c#intList.Capacity = 100;
2、注意容量和列表中元素个数的区别,容量是列表中⽤于存储数据的数组的⻓度通过capacity获取,列表中的元素是我们添加进去需要管理的数据,通过Count获取
相关信息
容量:存储数据大小
元素个数:添加了多少个数据
遍历列表有两种⽅式:
1、for循环
遍历所有的索引,通过索引访问列表中的元素
c#for(int i=0;i<list.Count;i++){
//循环体list[i]
}
2、foreach遍历
c#foreach(int temp in list){ //依次取得list中的每⼀个元素赋值给temp,并执⾏循环体
//循环体 temp
}
操作列表的属性和⽅法