列表的默认容量

问题描述 投票:48回答:6

列表的默认容量是多少?

c# .net list capacity
6个回答
56
投票

您为什么不尝试一下?

Console.WriteLine("Default capacity of a List: " + new List<int>().Capacity);

此答案将适用于具有列表的所有.NET版本。在我的版本中,它恰好是0。


49
投票

实际上,它从容量0开始。当您添加第一个元素时,当前实现分配的容量4。此后,如果需要扩展,容量将保持两倍,以保证摊销O(1)操作。 >

请记住,这是当前的行为。您不应该依赖它。这应该演示当前行为:

List<int> list = new List<int>();
int capacity = list.Capacity;
Console.WriteLine("Capacity: " + capacity);

for (int i = 0; i < 100000; i++)
{
    list.Add(i);
    if (list.Capacity > capacity)
    {
        capacity = list.Capacity;
        Console.WriteLine("Capacity: " + capacity);
    }
}

39
投票

根据MSDN parameterless constructor documentation上的示例,使用以下命令创建的列表的初始容量:


5
投票

列表的默认容量为4个项目(插入初始项目后,否则大小为0)


1
投票

如果您大致知道要在列表(或堆栈或队列)中存储多少项目,则应使用容量。


0
投票

所有这些都在一行中,以确保容量能够存储另一个元素:

© www.soinside.com 2019 - 2024. All rights reserved.