.net - "bad"在字典中使用对象作为键吗?

标签 .net dictionary hashtable

我假设在字典中进行查找时,它需要散列您提供的 key ,然后使用该散列来查找您要查找的对象。

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

最佳答案

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

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

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

关于.net - "bad"在字典中使用对象作为键吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22611191/

相关文章:

c# - 如何将字符串转换为 .net 3.5 中的版本?

c# - Process.Start() 导致应用程序挂起

c# - 使用 C# .Net 可被 60 整除的任何数字的正则表达式?

.net - 如何在不使用 app_code 目录的情况下编写 asmx web 服务?

C# 根据友谊将一些元素重新分组到不同的组中而没有循环

data-structures - 如何找到搜索哈希表所需的最大和最小时间?

ios - swift 3 以编程方式填充字典

python - 使用 list 索引到 Python dict 中以获取列表,就像使用 Perl 哈希一样

python - 什么是实现 __hash__() 的正确和好方法?

java - 我如何评估哈希表的实现? (引用HashMap)