【问题标题】:Difference between clear and new instantiation of a dictionary [closed]字典的清晰实例化和新实例化之间的区别[关闭]
【发布时间】:2020-11-20 11:42:05
【问题描述】:

专家, 我有一段代码在其中创建字典并将其添加到列表中。现在我正在使用相同的字典对象将下一组键值对添加到字典中。并将相同的字典对象再次添加到列表中。现在在两个操作之间我做了 Dictionary.clear()。

当我尝试检索值时,这是一个问题。字典中没有值。我得到一个超出范围的索引错误。 在我删除了清除指令并再次实例化之后。这个问题解决了!!!

但是如何?

一旦你添加到字典中,那么对象的副本就会被添加到字典中。我对原始对象做了什么,清除或不应该影响已经添加为版权的对象?

【问题讨论】:

标签: c# .net vb.net


【解决方案1】:

一旦你添加到字典然后对象的副本被添加到 字典

这是不正确的。当您将字典添加到列表时,它会向字典添加 reference。然后,当您清除字典时,引用仍指向同一个字典,因此您会得到一个空字典。

如果您需要一本新词典,那么您应该使用new。一般来说,如果您不使用new,那么您将无法获得新的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-17
    • 1970-01-01
    • 1970-01-01
    • 2020-04-24
    • 2014-03-15
    • 1970-01-01
    相关资源
    最近更新 更多