如何从重新实现 GetHashCode 的类中获取原始哈希码?

2024-06-26

简短的问题:我如何获得object.GetHashCode()重新实现的对象的值GetHashCode()?

很长的故事:所以我有大约十万个对象,每个对象共享许多(非编译时)公共字符串。常见的是如果值相等,则它是同一个实例。

知道了这一点,我想我宁愿使用标准对象比较(ReferenceEquals)而不是完整的字符串比较 - 特别是因为这些是相当定期地在字典中查找的。

所以我声明一个class ReferenceEqualityComparer : IEqualityComparer与使用Dictionary<string, TValue>,认为无论如何都有用,并开始尝试实现这两种方法。

等于很容易,使用object.ReferenceEquals.

但我怎样才能得到相当于object.GetHashCode()为了GetHashCode method?

即如何获得对象实例的某种表示?

我知道还有其他方法可以做到这一点 - 创建一个InternedString包含对的引用的类string,但没有实现Equals or GetHashCode,或者存储索引而不是每个对象的字符串,但我现在很好奇 - 实际上是否有一种方法可以实现通用ReferenceEqualityComparer?


看一下RuntimeHelpers.GetHashCode(object) http://msdn.microsoft.com/en-us/library/11tbk3h9.aspx.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从重新实现 GetHashCode 的类中获取原始哈希码? 的相关文章

  • 如何调试Roslyn编译生成的dll?

    我正在使用 Roslyn CSharpCompilation 为我的插件生成 dll 文件 文件具有 OptimizationLevel Debug 并生成 pdb 文件 接下来 我使用 Assembly Load 将这些文件加载 到我的程
  • 是否可以使静态控件透明?

    我正在尝试实现一个静态控件 该控件刷新 更改文本 以响应每秒发生一次的某个事件 由于我不想每秒绘制整个客户区域 所以我决定使用静态控件 现在的问题是父窗口被蒙皮 这意味着它有自定义位图作为背景 而静态控件没有适应 所以我正在寻找使静态控件的
  • 以 ISO 8601 格式输出日期

    如何在 C 中获取以下格式的日期 2016 04 26T19 50 48Z include
  • MVC。网络错误:初始化字符串的格式不符合从索引 0 开始的规范

    我的连接字符串是
  • 获取当前用户的 NetworkCredential (C#)

    我正在尝试从控制台应用程序调用 Web 服务 并且我需要向客户端提供System Net NetworkCredential object 是否有可能创建一个NetworkCredential启动应用程序的用户的对象而不提示输入用户名 密码
  • 在 2 个 .c 文件之间共享函数

    dir1有dir2 file1 c和file1 h dir2 有 file2 c 现在 如果我想在 file2 c 中访问 file1 c 中定义的函数 我需要在 file1 h 中声明它并在 file2 c 中包含 file1 h 这是一
  • 外部剃刀视图看不到外部模型

    我对外部剃刀视图有疑问 在我的项目中 我有主 mvc Web 程序集和动态加载的外部类库程序集 来自 DB 及其自己的控制器 视图和模型 这些程序集在运行时不会直接引用和加载 我能够通过为控制器创建自定义控制器工厂 为视图创建自定义虚拟路径
  • 错误 C2065:'cout':未声明的标识符

    我正在处理我的编程作业的 驱动程序 部分 但我不断收到这个荒谬的错误 错误 C2065 cout 未声明的标识符 我什至尝试过使用std cout但我收到另一个错误 IntelliSense 命名空间 std 没有成员 cout 当我宣布u
  • VS2010中VSHost.exe不断启动

    我正在 VS2010 中使用一个包含大量项目的解决方案 但它不断变得无响应 我注意到的一件事可能是一条线索 尽管我尚未开始任何调试 但 MyApplicationName vshost exe 不断出现在进程列表中 也许每当构建发生时它就会
  • ASP.NET 中的 thread.sleep

    我正在为我的网站模拟彗星实时馈送协议 因此在我的控制器中我添加 while nothing new before timeout Thread Sleep 1000 但我注意到添加此功能后整个网站变慢了 调试后我得出结论 当我打电话时Thr
  • 如何在 WCF 中反序列化自定义 SOAP 标头?

    我正在尝试向通过 WCF 的所有 SOAP 请求添加自定义标头 我发现这篇精彩的文章 http blogs msdn com b mohamedg archive 2012 10 21 adding custom soap headers
  • 解析通过asp:FileUpload上传的XML文件

    我有一个场景 用户将上传 XML 文件 我想将该文件添加到数据库中的表中 不过 困难的部分是我需要解析文件 然后将一些信息添加到一些不同的表中 显示如何获取 XML 文件的每个示例都使用 URI 来获取文件 但是如何直接从数据库获取文件 或
  • argc 和 argv 在 Windows 中没有用吗?

    在 Linux 中 argc 和 argv 计算终端中的参数 但在 Windows 中 我找不到放置第二个参数的地方 事实上 每次我运行该程序时 它都会创建那个丑陋的黑色窗口 我什至没有机会给出任何争论 那么这两个变量在Windows平台下
  • OpenMP 循环数组访问中的错误共享

    我想利用 OpenMP 来并行执行我的任务 我需要将数组的所有元素减去相同的数量并将结果写入另一个向量中 两个数组都是动态分配的malloc第一个填充了文件中的值 每个元素都有类型uint64 t pragma omp parallel f
  • 剥离 OLE 标头信息 (MS Access / SQL Server)

    我有一个 C 应用程序需要支持二进制数据库内容 图像等 当使用 MS Access 或 MS SQL Server 时 此数据被包装在 OLE 对象内 如何去除此 OLE 标头信息 请注意 我不能只查找特定标签的开头 因为内容可以是 png
  • Subsonic 3 ActiveRecord 嵌套选择导致 NotIn 错误?

    我有以下 Subsonic 3 0 查询 其中包含嵌套的 NotIn 查询 public List
  • 是否可以在 Eclipse 中为除 Java 之外的 Eclipse 编写插件?

    谁能帮我用c 写一个eclipse插件 weekens 和 celavek 感谢您提供的信息 我正在研究 JNI 并将尝试实现它 celavek 我们必须做什么样的主控 控制 在C 和java接口中处理是否风险更大 我的要求是在 Java
  • 矩阵行列式算法 C++

    我是编程新手 我一直在寻找一种找到矩阵行列式的方法 我在网上找到了这段代码 但我很难理解这里的算法 我对递归的基础没有问题 但继续和主循环我很难理解 非常感谢任何可以向我解释该算法的人 int determ int a MAX MAX in
  • 从不同的线程访问对象

    我有一个服务器类 它基本上等待来自客户端的连接 在该类中 我创建了一个 NetworkStream 对象 以便能够从客户端接收字节 由于 NetworkStream Read 方法不是异步的 这意味着它将等到从客户端读取字节才能继续执行类似
  • Json.net 将数字属性序列化为字符串

    我正在使用 JsonConvert SerializeObject 序列化模型对象 服务器期望所有字段都是字符串 我的模型对象具有数字属性和字符串属性 我无法向模型对象添加属性 有没有办法将所有属性值序列化为字符串 我必须只支持序列化 而不

随机推荐

  • 在fixture hooks中使用用户代理进行浏览器检测

    我有一些测试只需要在移动浏览器中运行 目前我有一个客户端功能来检查用户代理 const checkMobile ClientFunction gt iPhone Android i test navigator userAgent 然后我在
  • PHP从数组中获取键值

    当我把print r data 我得到以下内容 Array name gt Cheese 有办法拿到钥匙吗name在它自己的变量中 可能有这样的情况name可能email和其他值 Use array keys http php net ma
  • 使用 START WITH 和 CONNECT BY PRIOR 将查询从 oracle 迁移到 postgresql

    我正在将一个进程从 oracle 迁移到 postgresql 并且在它们的转换方面遇到了另一个问题 我一直在研究如何迁移oracle查询 它有 START WITH 和 CONNECT BY PRIOR 我已经对此进行了记录 我认为最简单
  • 从构造函数调用中读取参数

    Given const anInstance new Plugin a path 你能返回给出的参数吗 anInstance some method a path or someWrapper anInstance a path 限制 您无
  • C++ init-list:使用未初始化的成员来初始化其他成员不会给出警告

    g 4 4 和 4 6 clang 3 2 和 coverity 都没有 使用 Wall 和 Wextra 其他一些 或 Weverything 分别给我以下代码片段的警告 class B char t2 char t public B t
  • CakePHP 控制器的实际测试?

    我正在使用 SimpleTest 1 0 1 用 CakePHP 刚刚发布的 1 2 4 编写一个新应用程序 我已经阅读了相关章节Cookbook http book cakephp org view 366 Testing control
  • 仅匹配单词或字符串中的撇号

    我正在寻找一个可以匹配的Python正则表达式 didn t 并仅返回紧接在撇号前面的字符 例如 t 但不是 d or t 在开始和结束时 我努力了 w w 但它只匹配开头的撇号 更多示例 I m 应该只匹配 m并不是 I Erick s
  • MyFaces + CDI 可以在 WebLogic 12c 上使用吗?

    我已经尝试让这个设置运行几天了 但仍然没有成功 这是我一直在使用的测试应用程序 Named RequestScoped public class Test private String test test public String get
  • 如何在 gitolite 中安装钩子

    我已阅读全部关于钩子的文档 https github com sitaramc gitolite blob pu doc 2 admin mkd using hooks similar https stackoverflow com que
  • 在 Python 中计算稀疏 Gram 矩阵的最快方法是什么?

    格拉姆矩阵是结构矩阵X X T这当然是对称的 当处理稠密矩阵时 numpy dot产品实现足够智能 可以识别自乘以利用对称性 从而加快计算速度 请参阅this https stackoverflow com a 50734430 14440
  • Linux 内核 - 如何停止等待信号量的 kthread?

    在编写 Linux 内核模块时 我遇到了一个 kthread 问题 在等待信号量解锁时无法唤醒该 kthread 这会导致线程不可停止并且rmmod尝试卸载模块时冻结 请注意 该模块在 3 10 内核上运行 我无法将其更新到较新的版本 客户
  • 打印没有行号/索引的 pandas 数据框[重复]

    这个问题在这里已经有答案了 使用以下代码 predictions pd DataFrame x6 x5 x4 x3 x2 x1 print predictions 在控制台中打印以下内容 0 0 782 367392 1 783 31415
  • 如何找到对象的创建位置?

    我目前正在努力改进对其他脚本有不同调用的代码 我想知道在哪里创建对象 对于其中一些人来说 只需使用文本编辑器的搜索选项即可 只要看看是否obj lt or obj 有什么结果 但这不适用于使用assign功能 在加载的脚本中创建的也不是 T
  • Javascript:简单的加法程序不起作用

    我正在尝试创建一个程序 单击按钮时将添加两个数字 但是 它不起作用 我完全困惑出了什么问题 在此程序中 用户应该输入 2 个数字 程序会在单击时向用户提供总和 这是代码 p For adding two numbers p
  • 获取按下按钮的压力

    android 中有没有一种简单的方法来获取用户在 onClick 事件期间施加的压力 如果您向按钮添加 MotionEvent 侦听器 您可以向 MotionEvent 请求压力 相关文档 http developer android c
  • 春季安全3.1。带有 url 参数的自定义authentication-failure-url

    我用谷歌搜索并尝试了很多变体几个小时 但没有成功 请帮助我找到解决方案 春季版本 春季3 1 我有登录页面 登录页面取决于 URL 参数 login code client1 or login code client2 所以client1和
  • 导致:java.lang.ClassNotFoundException:com.fasterxml.jackson.databind.JavaType未找到

    我在我的应用程序中使用 jackson libs 当我构建代码 使用 ant 时 构建成功 我已经在单元测试中使用这些方法尝试过模拟测试 并且工作正常 但是当启动 karaf 时 它给了我这个错误 Caused by java lang C
  • React Redux:调度时无限循环

    我发现这个问题很常见 但我没有找到适合我的情况的解决方案 我正在尝试使用 React 和 Redux 以及 Redux thunk 将用户重定向到 React Native 中的另一个导航器 如果我只显示主屏幕 它工作正常 但是当我从登录屏
  • “d = dict()”和“d = {}”之间的区别

    python2 7 m timeit d 10000000 loops best of 3 0 0331 usec per loop python2 7 m timeit d dict 1000000 loops best of 3 0 1
  • 如何从重新实现 GetHashCode 的类中获取原始哈希码?

    简短的问题 我如何获得object GetHashCode 重新实现的对象的值GetHashCode 很长的故事 所以我有大约十万个对象 每个对象共享许多 非编译时 公共字符串 常见的是如果值相等 则它是同一个实例 知道了这一点 我想我宁愿