2012-09-24 138 views
2

我想知道是否有一種方法可以將所有字典值設置爲空(或每個元素)?因爲如果值已更改爲null,我們無法迭代它。如何將字典值設置爲空

(在問這個簡單的問題之前,我在Stackoverflow上搜索過,但是在這個問題上我沒有找到明確的答案)。

Regards

+3

你想清空字典嗎?在這種情況下,只需調用Clear http://msdn.microsoft.com/en-us/library/b5txwy7s.aspx –

+2

如果_values_爲null,則可以迭代字典。不知道爲什麼你認爲你不能。你的意思是你想要一個詞典(所以根本沒有物品)? – Oded

回答

6

這是你想要的嗎?

foreach(var key in dict.Keys.ToList()) 
    dict[key] = null; 

重要提示:致電ToList()。這會將密鑰複製到臨時列表中。否則,您將收到一條帶有以下消息的InvalidOperationException

收集已修改;枚舉操作可能不會執行。

+0

你可以做'foreach(var key in dict.Keys){}'。 –

+0

@HaniiPuppy:不,你不能。這什麼都不做。 –

+0

是的,你可以o_O dict.Keys返回一個ICollection 。 dict.Keys.ToList()然後在迭代之前毫無意義地將該ICollection 轉換爲列表。 –

相關問題