出队对象是否从Queue对象中删除引用并允许GC?

Rya*_*ett 2 .net c# collections garbage-collection

一些背景:

我正在查看.NET框架中可用的各种集合对象,并尝试决定使用哪一个.

我必须遍历集合中的每个对象,不一定要通过它们进行枚举,处理和删除它.我必须在内存中执行此操作,数据集将很大(在演出中关闭).我需要尽可能快地减少内存占用.

问题:队列集合中的对象是否从队列中释放该引用,以便垃圾收集器可以完成其工作?(假设没有其他参考出列物体)

Luk*_*keH 6

如果你正在讨论内置Queue<T>Queue集合,那么是的,当一个对象出列时,之前持有该对象的后备数组中的元素被设置为default(T)/ null,这应该允许随后收集该对象.