SortedList
中System.Collections.Generic
的默认容量是多少?有人告诉我它是4,但下面的例子显示0。为什么呢?
SortedList<int,string> sortedlist = new SortedList<int,string>();
Console.WriteLine(sortedlist.Capacity);
答案 0 :(得分:6)
documentation对此有点模糊,只是说该列表将具有“默认初始容量”。
但是,reference source中的评论说明了这一点:
构造一个新的排序列表。 排序后的列表最初是空的并且有 容量为零。将第一个元素添加到排序列表后 容量增加到_defaultCapacity ,然后以2的倍数增加 要求。排序列表的元素按照顺序排序 IComparable接口,必须通过键实现 所有条目都添加到排序列表中。
_defaultCapacity
是4
。
因此,要回答您的问题:默认值为0
和 4
,具体取决于您是否添加了元素。
答案 1 :(得分:0)
零是通用版本的默认容量。它会随着您添加元素而增加,最初在添加元素时将大小增加到4。可以使用构造函数SortedList(Int32)
定义初始大小。容量始终至少与Count相同。可以使用Count
将其修剪为TrimToSize()
中的确切数字。