我有一個列表,並且已經用myObjects填充它。我處理對象,然後我想通過釋放對象的引用來收集垃圾對象。這將如何成爲最好的?如何使列表中的每個對象爲空
我不能使用foreach循環,因爲你不能改變循環內的集合。
我有一個列表,並且已經用myObjects填充它。我處理對象,然後我想通過釋放對象的引用來收集垃圾對象。這將如何成爲最好的?如何使列表中的每個對象爲空
我不能使用foreach循環,因爲你不能改變循環內的集合。
此更新列表,並且不產生新的內容,新的名單。
for (i = 0; i < list.Count; i++) {
list[i] = null;
}
是的感謝 - 正在考慮哪些是不正確的。 – Paul
使用List(T).Clear()
方法:http://msdn.microsoft.com/en-us/library/dwb5h52a.aspx
該取消引用的所有對象,並設置計數爲0
如果你真的需要保留相同的計數和您的列表中設置每個項目爲空,你可以簡單地使用ForEach()
:
list.ForEach(x => x = null)
using System.Collections.Generic; // required for `IEnumerable<T>`
using System.Linq; // required for the `Select` LINQ operator
static IEnumerable<T> ReplaceAllByNullReferences(this IEnumerable<T> xs) where T : class
{
return xs.Select(x => null);
} // ^^^^^^^^^^^^^^^^^^^^
// returns a sequence of the same length as the original sequence
// in which every object reference has been replaced by a null reference
你基本上要通過列表進行迭代,並且每個對象分配給空,像這樣:
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;
}
爲什麼downvote? – JMK
你要什麼才達到?清除列表? – Zbigniew
_什麼意思_「make [an] object null _ _? – stakx
刪除對象的所有引用。如果列表中有1000個對象被重新指定 - 是否可以刪除這些引用 – Paul