Mar*_*ers 55
你为什么不试试呢?
Console.WriteLine("Default capacity of a List: " + new List<int>().Capacity);
这个答案适用于具有List的所有.NET版本.在我的版本中,它恰好是0.
Tho*_*rin 48
实际上,它从容量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);
    }
}
Jon*_*eet 38
根据MSDN无参数构造函数文档中的示例,创建列表的初始容量:
List<string> x = new List<string>();
是的.据我所知,这不作为保证记录,也没有记录调整大小的策略(即它目前可以加倍至少4,但在.NET 5.0中它可以加倍至少128 .)基本上你不应该依赖这种行为.
列表的默认容量为4个项目(插入初始项目后,否则大小为0)
var list = new List<int>();
list.Add(1);
Assert.AreEqual(4, list.Capacity);