gpt4 book ai didi

c# - .net List 修剪多余的部分

转载 作者:太空宇宙 更新时间:2023-11-03 18:38:46 26 4
gpt4 key购买 nike

考虑这种情况:Form1 构建了一个包含大量元素的 List 对象。然后,它必须通过参数将此集合传递给 Form2。

在 Form2 中制作硬拷贝后,我想清除与 Form1 中的集合相关的所有内容。让 Col1 成为 Form1 中集合的标识符。

因为 Col1 是通过参数通过引用传递的,所以我调用 Col1.Clear() 来清除它的元素,然后调用 Col1.TrimExcess() 来将其实际大小减小为 0,因此它不会跟踪大量的 null 值。

我的意图是尽快清除所有使用的内存。 Col1.TrimExcess() 应该清除所有使用的内存,但我很好奇 Col1 = null 在我的(或大多数)情况下是否会更好?

最佳答案

我想调用 Col1.Clear() 来清除它的元素,然后调用 Col1.TrimExcess()将是一种更好的方法,因为 Col1 = null 只会取消引用列表,但它仍会保留在内存中,直到 GC 完成它的工作。

调用 Col1.Clear() 将从列表本身取消引用列表的项目,然后 Col1.TrimExcess() 将从列表中删除所有空元素。

所以这样它将删除内存中所有内容的引用。

希望对你有帮助

关于c# - .net List<T> 修剪多余的部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11505968/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com