相关疑难解决方法(0)

集合类型的初始容量,例如Dictionary,List

.Net中的某些集合类型具有可选的"初始容量"构造函数参数.例如:

Dictionary<string, string> something = new Dictionary<string,string>(20);

List<string> anything = new List<string>(50);
Run Code Online (Sandbox Code Playgroud)

我似乎无法找到MSDN上这些对象的默认初始容量.

如果我知道我只会在字典中存储12个左右的项目,那么将初始容量设置为20就没有意义吗?

我的理由是,假设容量增长的速度与StringBuilder一样,每次容量达到时都会增加一倍,并且每次重新分配都很昂贵,为什么不预先设置你知道会保存数据的大小,还有一些额外的房间以防万一?如果初始容量是100,并且我知道我只需要十几个,那么好像其余的内存都没有分配.

.net c# collections memory-management object-initializers

37
推荐指数
3
解决办法
3万
查看次数