我正在声明如下列表,然后我添加了12个项目:
List lstPolygonWkt = new List();
foreach(var i in items)lstPolygonWkt.Add(i.PolygonWkt);
人们应该认为该列表现在包含12个元素,对吧?但令我惊讶的是,该列表突然包含16个项目,然后最后4个项目为空.我不明白为什么我的列表应该是12项突然16项.知道为什么吗?以及如何使列表只应该是12个项目?
我将粘贴几个屏幕截图:
每次需要增加容量时,该列表都会以块的形式保留内存.因此,容量报告16,但仅计算报告12.空项目有助于计数.
list类提供了TrimExcess
删除未使用空间的方法.
此外,在构造函数中预先指定容量只会导致一次内存占用(假设您没有超过该容量).
您的屏幕截图显示12的容量为16的计数.如果内存服务,列表会尝试将其大小加倍(或者至少肯定默认为4,然后是8,然后是16).由于您有12个项目,因此触发了从8个容量到16个容量的跳转.
归档时间: |
|
查看次数: |
98 次 |
最近记录: |