c# - 如果删除元素,List<T> 会缩小大小

标签 c# list

List<T>变满了,它的大小增加了一倍,占用内存的两倍,但是如果你从中删除元素,它会自动减小大小吗?

据我所知减少 Capacity并不意味着重新定位内存中的所有数据,它只需要删除保留内存的末尾,但它真的做到了吗?

最佳答案

不,List 永远不会减少容量,除非您自己通过设置该属性或使用 TrimExcess 明确降低容量,除非您调用 Clear 并且它可以完全删除缓冲区。

当然,这只是当前的实现,它是一个实现细节,因此您不能依赖它不收缩支持数组。

关于c# - 如果删除元素,List<T> 会缩小大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39476369/

相关文章:

c# - 将资源中的 WPF 几何图形添加到 GeometryGroup

c# - 使用 nreco 将图像与视频合并

python - 如何将字典转换为列表?

JAVA : How get to the List<String>

python - 从磁盘读取列表会比加载字典更好吗?

c# - 在 MVC Razor View 中按月分组

c# - 如何在 .NET 中不使用乘法运算符实现乘法

使用 MediaInfo.dll 的 C# 发布应用程序

r - 列表数据框类上匹配日期的百分比计算

ruby - Ruby 中的时区选择列表(按 UTC 偏移量)