如何将字典值设置为null

Nic*_*coC 4 c#

我想知道是否有办法将所有字典值都置为null(或每个元素)?因为如果值已更改为null,我们无法迭代它.

(我在询问这个简单的问题之前在Stackoverflow上搜索过但我没有在这个问题上找到明确的答案).

问候

Dan*_*rth 9

这是你想要的吗?

foreach(var key in dict.Keys.ToList())
    dict[key] = null;
Run Code Online (Sandbox Code Playgroud)

重要:致电ToList().这会将密钥复制到临时列表.否则你会得到一条InvalidOperationException消息:

收集被修改; 枚举操作可能无法执行.

  • @HaniiPuppy:不正确.我甚至解释为什么有必要.请自己尝试. (3认同)
  • @HaniiPuppy:不,你不能.这什么都不做. (2认同)
  • @EhsanMohammadi:无关紧要。您是否曾经遇到过因为速度太慢而不得不使用其中一个的情况?而且,这甚至不是真的,因为它们的内部实现非常相似,唯一的区别是“ToArray”有一个额外的数组副本,所以如果有的话,它应该更慢。 (2认同)
  • @EhsanMohammadi:所以呢?我重复我的问题:您是否遇到过由于测量的实际性能问题而必须选择其中之一的情况? (2认同)