集合类

9 阅读2分钟

列表List

  1. 当我们有很多类型一样的数据的时候,前面我们一般使用数组来进行管理,但是这样有个缺点就是数组的大小是固定的。
  2. 如果我们很多类型一样的数据,比如游戏得分,我们可以集合类来进行管理,比如列表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]);
    }
    
}
  1. 用泛型指定列表类型
  2. list.Add添加数据
  3. list[1]索引访问数据,ints.Count获取列表长度
  4. Capacity获取容量大小,Add()方法添加元素
  5. list.Insert(2, 912);在2位置插入912
  6. list.Remove(23);删除第一个找到的23
  7. list.RemoveAt(2);删除位置2的值
  8. list.IndexOf(23)从0开始查询23的位置
  9. list.LastIndexOf(23)从后开始查询23的位置
  10. list.Sort();从小到大排序

关于列表的更多内容

列表内部数据是使用数组进行的存储,一个空的列表内部会有一个长度为0的数组,当 给列表中添加元素的时候,列表的容量会扩大为4,如果添加第5个的时候,列表的大小 会重新设置为8,如果添加第9个元素,列表容量会扩大为16,依次增加。当列表的中的 容量发生改变的时候,它会创建一个新的数组,使用Arry.Copy()方法将旧数组中的元素 复制到新数组中。为了节省时间,如果事先知道要存储的数据的个数,就可以利用列表的 构造函数指定列表的容量大小

比如List intlist=new List(10):创建了一个初始容量为l0的列表,当容量不够用的时 候,每次都会按照原来容量的2倍进行扩容。 我们可以通过Capacity属性获取和设置容量intlist.Capacity=100; 注意容量和列表中元素个数的区别,容量是列表中用于存储数据的数组的长度通过Capacity获取,列表中的元素是我们添加进去需要管理的数据,通过Count获取

列表的遍历

  1. for循环,遍历所有索引,通过索引访问列表的元素
for (int i = 0; i < ints.Count; i++)
{
    Console.WriteLine(strings[i]);
}
  1. foreach遍历
foreach(int i in ints)
{
    Console.WriteLine(strings[i]);
}