c# - 使用两个字段的组合作为字典中的键

标签 c# dictionary hash

我需要存储一个 c# 字典,我可以在其中存储基于 IntPtr 和枚举的成员(如果有帮助,可转换为 int)。换句话说,如果我得到 IntPtr 和枚举(名为 sp_playlist_type)的相同匹配,我需要能够得到相同的结果,但只有这样(这也很重要)。我想我会制作一个包含这两个数字的结构,并重写 GetHashCode(),但是我需要一个哈希算法,它不会为两个数字创建重复项,并且每次都生成相同的结果有两个数字。

最佳答案

then I'd need a hashing-algorithm that doesn't create duplicates for the two numbers

这实际上是不正确的。您需要覆盖 GetHashCode(),但它可能会发生冲突。您希望尽量减少哈希码中的冲突,而不是消除它们。

这实际上很容易做到。一个常见的选择是只使用结构的两个成员的哈希码的异或,或类似的东西。

关于c# - 使用两个字段的组合作为字典中的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4948194/

相关文章:

c# - 从 asp.net mvc 5 中的字符串转换日期时间时转换失败

python - 在循环中合并Python数组?

python - 按键排序字典 : single key priority and alphabetical

python - 有没有办法用元组从字典中检索数据?

php - 最佳实践/如何保护根目录以上的文件并对链接进行哈希处理以在受限登录帐户区域中向客户显示?

c# - PresentationFramework 中的 NullReference 异常

C# 和类似 SharedPreferences 的东西

java - 遍历 zip 文件 java 中的所有目录

perl - 如何在 perl 中的散列数组中向散列中添加新的键值对?

c# - 搜索 List<List<string>> 的最佳方法是什么?