2012-09-24 106 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 转换为列表。 –

相关问题