我创建了一个名为Customer对象的List,其初始大小为0.
List<Customer> firstCustomerList = new List<Customer>();
List的Outputted Capacity属性为0.
我将一个客户添加到列表中..
firstCustomerList.Add(customer1);
现在,List的输出Capacity属性为4.
Customer对象确实只是一个对象,不是另一个List。更重要的是,如果我添加3个Customer对象,然后将TrimExcess()方法应用于List,它会将List缩小到正确的大小。
那么为什么只添加一个对象就可以将List的容量提高到4?
答案 0 :(得分:5)
Capacity
是实际保存数据的数组的大小。 Count
是列表中元素的数量
只要数组足够大,向数组添加元素就很便宜。由于列表不知道它有多大,它必须动态调整数组大小到Capacity
大小。这很昂贵(你必须复制每个元素),因此它将分配超出它需要的数量,以限制调整大小的操作。