【发布时间】:2013-03-04 13:33:11
【问题描述】:
有一个问题,为什么他们要求使用不可变对象作为字典中的键。
当我最近使用字典(显然不是为了哈希表的目的)将 Xml 节点对象作为键放置时,这个问题实际上出现在我的脑海中。然后我在使用过程中多次更新节点。
那么“使用不可变键”的真正含义是什么?
【问题讨论】:
-
查看我对this question 的回答,我在其中详细描述了可变字典键的后果。
-
Dictionary是一种散列数据结构。如果您更改了一个键,但它仍然占用数据结构中的相同槽,那么散列会中断吗? -
this blog post 的确切问题标题是否为“必须”表示“应该”没有回答您的问题或出现在您的搜索结果中?
-
例如:在一个非常具体和奇怪的要求中,我实现了一个 IDictionary
。我已经通过大量的测试场景对其进行了测试。 XmlNodes 被添加和/或删除,但它仍然没有中断。
标签: c# dictionary key immutability