列表List的创建和使用
创建列表(列表可以存储任何类型的数据,在创建列表对象的时候首先要指定你要创建的这个列表要存储什么类型的)(泛型)
List<int> scoreList = new List<int>();//创建了一个空的列表 通过类型后面的<>来表示这个列表存储的数据的类型
var scoreList = new List<int>();
var scoreList = new List<int>(){1,2,3};//创建了一个列表,里面的初始值有三个分别为 1 2 3
插入数据
scoreList.Add(12);//向列表中插入数据
读取数据
Console.WriteLine(scoreList[0]);//根据索引访问数据
列表的容量和元素个数的区别
1、列表内部数据是使用数组进行的存储,一个空的列表内部会有一个长度为0的数组,当给列表中添加元素的时候,列表的容量会扩大为4,如果添加第5个的时候,列表的大小会重新设置为8,如果添加第9个元素,列表容量会扩大为16,依次增加。当列表的中的容量发生改变的时候,它会创建一个新的数组,使用Array.Copy()方法将旧数组中的元素复制到新数组中。为了节省时间,如果事先知道要存储的数据的个数,就可以利用列表的构造函数指定列表的容量大小,比如下面的
List<int> intlist = new List<int>(10);创建了一个初始容量为10的列表,当容量不够用的时候,每次都会按照原来容量的2倍进行扩容。
我们可以通过Capacity属性获取和设置容量
intList.Capacity = 100;
2、注意容量和列表中元素个数的区别,容量是列表中用于存储数据的数组的长度通过Capacity 获取,列表中的元素是我们添加进去需要管理的数据,通过Count获取
案例:
var scoreList = new List<int>();
for (int i = 0; i < 20; i++)
{
Console.WriteLine("capacity:" + scoreList.Capacity + " count:" + scoreList.Count);
scoreList.Add( 10 );
}
列表的遍历
遍历列表有两种方式:
1,for循环,遍历所有的索引,通过索引访问列表中的元素
for(int i = 0; i < list.Count; i++){
list[i]
}
2,foreach遍历
foreach(int temp in list){
//依次取得list中的每一个元素赋值给temp,并执行循环体
temp
}
操作列表的属性和方法
1、Capacity获取容量大小
2、Add()方法添加元素
3、Insert()方法插入元素
scoreList.Insert(3, -1);//向指定索引位置插入元素
4、[index]访问元素
5、Count属性访问元素个数
6、RemoveAt()方法移除指定位置的元素
scoreList.RemoveAt(0);//移除索引0的元素
7、IndexOf()方法取得一个元素所在列表中的索引位置
int index =scoreList.IndexOf(400);//返回元素400在列表中的素引位置
LastIndexOf()上面的方法是从前往后搜索,这个是从后往前搜索,搜索到满足条件的就停止
上面的两个方法,如果没有找到指定元素就返回-1
8、Sort()对列表中是元素进行从小到大排序