-5

我有一个列表,并用 myObjects 填充了它。我对对象进行处理,然后我想通过释放对对象的引用来收集对象垃圾。这将如何最好地实现?

我不能使用 foreach 循环,因为你不能改变循环内的集合。

4

3 回答 3

2

这会更新列表,并且不会创建包含新内容的新列表。

for (i = 0; i < list.Count; i++) {
    list[i] = null;
}
于 2013-07-27T12:07:03.727 回答
0

You basically want to iterate through the list, and assign each object to null, like so:

var myList = new List<object>();

for (var i = 0; i < 9; i++)
{
    myList.Add(new object());
}

for (var i = 0; i < myList.Count; i++)
{
    myList[i] = null;
}
于 2013-07-27T12:07:51.267 回答
-2

使用List(T).Clear()方法:http: //msdn.microsoft.com/en-us/library/dwb5h52a.aspx

这将取消引用所有对象并将 Count 设置为 0。

如果您确实需要保持相同的计数并将列表中的每个项目设置为空,您可以简单地使用ForEach()

list.ForEach(x => x = null)
于 2013-07-27T11:48:21.737 回答