2014-03-24 189 views
3

我假设在字典中进行查找时,需要对您提供的密钥进行散列处理,然后使用该散列值查找您要查找的对象。在字典中使用对象作为键是否“不好”?

如果是这样,那么使用较大的对象作为键会显着减慢这种查找的速度,还是会导致使用字符串或简单数据类型作为键时不会遇到的其他后果?

+0

似乎有点臭。什么是用例? – NWard

+0

如果这些对象的'GetHashCode'方法被正确实现,那么应该没有任何问题 – Alberto

+0

没关系,但要重写GetHashCode()和Equals()方法 –

回答

5

是的,使用可变对象作为字典键是一个坏主意。

看看https://stackoverflow.com/a/7941876/400760,让我相信会有意想不到的后果,即使正确实施的GetHashCode()基于如何基于哈希的集合通常实现。

使用不可变对象作为字典键应该是安全的。

相关问题