.net做ArrayList.Clear释放内存?

JL.*_*JL. 7 .net c# arraylist

我有一个人口稠密的arraylist,我想清除和重用.如果我清除它会释放以前使用过的内存吗?

我还应该提一下,arraylist是一个私有的只读字段,在我第一次使用arraylist之后仍然有许多活跃的工作要做.所以我不能等到课后超出范围的垃圾收集.

Clear方法足够快吗?或者我应该销毁并创建一个新的arraylist?

问题更新:

如果我有这样的字段声明(感谢Jon的建议)

    /// <summary>
    /// Collection of tasks.
    /// </summary>
    private List<Task> tasks = new List<Task>();
Run Code Online (Sandbox Code Playgroud)

然后我填充它....(严重)

现在,如果不是清除和修剪,我可以打电话:

tasks = new List<Task>(); 
Run Code Online (Sandbox Code Playgroud)

这会被推荐吗?

Jon*_*eet 16

做任何更好的表达你的意图.你真的想要一份新名单吗?如果是这样,请创建一个新的.如果您在概念上想要重用相同的列表,请致电Clear.

for的文档ArrayList说明了Clear保留原始容量 - 所以你仍然会有一个大数组,但是它将充满空值而不是对前面元素的引用:

Capacity保持不变.要重置ArrayList,请 直接调用 TrimToSize或设置Capacity属性.修剪为空会将 ArrayList容量设置 ArrayList为默认容量.

你使用的原因是什么ArrayList而不是List<T>顺便?