列表List
- 当我们有很多类型一样的数据的时候,前面我们一般使用数组来进行管理,但是这样有个缺点就是数组的大小是固定的。
- 如果我们很多类型一样的数据,比如游戏得分,我们可以集合类来进行管理,比如列表List,我们可以使用列表List很方便的添加数据,删除数据还有其他对数据的操作。
列表基本使用
static void Main(string[] args)
{
List<int> list = new List<int>();
List<int> ints = new List<int>() { 1, 3, 4};
List<string> strings = new List<string>();
list.Add(900);
list.Add(6721);
Console.WriteLine(list[1]);
list[1] = 12;
for (int i = 0; i < ints.Count; i++)
{
Console.WriteLine(strings[i]);
}
}
- 用泛型指定列表类型
- list.Add添加数据
- list[1]索引访问数据,ints.Count获取列表长度
- Capacity获取容量大小,Add()方法添加元素
- list.Insert(2, 912);在2位置插入912
- list.Remove(23);删除第一个找到的23
- list.RemoveAt(2);删除位置2的值
- list.IndexOf(23)从0开始查询23的位置
- list.LastIndexOf(23)从后开始查询23的位置
- list.Sort();从小到大排序
关于列表的更多内容
列表内部数据是使用数组进行的存储,一个空的列表内部会有一个长度为0的数组,当 给列表中添加元素的时候,列表的容量会扩大为4,如果添加第5个的时候,列表的大小 会重新设置为8,如果添加第9个元素,列表容量会扩大为16,依次增加。当列表的中的 容量发生改变的时候,它会创建一个新的数组,使用Arry.Copy()方法将旧数组中的元素 复制到新数组中。为了节省时间,如果事先知道要存储的数据的个数,就可以利用列表的 构造函数指定列表的容量大小
比如List intlist=new List(10):创建了一个初始容量为l0的列表,当容量不够用的时 候,每次都会按照原来容量的2倍进行扩容。 我们可以通过Capacity属性获取和设置容量intlist.Capacity=100; 注意容量和列表中元素个数的区别,容量是列表中用于存储数据的数组的长度通过Capacity获取,列表中的元素是我们添加进去需要管理的数据,通过Count获取
列表的遍历
- for循环,遍历所有索引,通过索引访问列表的元素
for (int i = 0; i < ints.Count; i++)
{
Console.WriteLine(strings[i]);
}
- foreach遍历
foreach(int i in ints)
{
Console.WriteLine(strings[i]);
}