当 List<T>
变满了,它的大小增加了一倍,占用内存的两倍,但是如果你从中删除元素,它会自动减小大小吗?
据我所知减少 Capacity
并不意味着重新定位内存中的所有数据,它只需要删除保留内存的末尾,但它真的做到了吗?
最佳答案
不,List
永远不会减少容量,除非您自己通过设置该属性或使用 TrimExcess
明确降低容量,除非您调用 Clear
并且它可以完全删除缓冲区。
当然,这只是当前的实现,它是一个实现细节,因此您不能依赖它不收缩支持数组。
关于c# - 如果删除元素,List<T> 会缩小大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39476369/