我需要存储一个 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/