gpt4 book ai didi

c# - 列表容量属性意外增加..为什么?

转载 作者:行者123 更新时间:2023-12-02 21:27:22 26 4
gpt4 key购买 nike

我创建了一个包含 Customer 对象的列表,初始大小为 0。

List<Customer> firstCustomerList = new List<Customer>();

列表的输出容量属性为 0。

我将一名客户添加到列表中..

firstCustomerList.Add(customer1);

现在,List输出的Capacity属性为4。

Customer 对象确实只是一个单独的对象,而不是另一个 List。更重要的是,如果我添加 3 个 Customer 对象,然后将 TrimExcess() 方法应用于列表,它确实会将列表减小到正确的大小。

那么为什么只添加一个对象就能将列表的容量增加到 4?

最佳答案

Capacity 是实际保存数据的数组的大小。 Count 是列表中元素的数量。
向数组添加一个元素的成本很低——只要你的数组足够大。由于列表不知道它有多大,因此它必须动态调整数组的大小,以达到 Capacity 大小。这是昂贵的(您必须复制每个元素),因此它将分配比需要的更多的内容,以限制调整大小操作。

关于c# - 列表容量属性意外增加..为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23207125/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com