gpt4 book ai didi

C# 一组已知整数作为字典自定义键

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:16:37 26 4
gpt4 key购买 nike

我想创建一个概念上为 Dictionary<HashSet<int>, FooBar> 的字典HashSet<int>在哪里在 key 中有以下限制:

  1. 成员只能从0到N中选出

我认为有了限制,应该有比编写自定义 IEqualityComparer 更高效的方法来做到这一点(如这篇文章中所述 C# List as Dictionary key )。例如,当 N<64 时,每个这样的哈希集都可以映射到唯一的 Int64。假设列表包含 1,3,18,29,那么 (1 << 1) + (1 << 3) + (1 << 18) + (1 << 29) 537133066 可以代表这个组合,所以我可以实现 Dictionary<Int64, FooBar>实现我的目标。然而,显然这种方法不会超过 64。

------11/11/2016 更新------

感谢那些在下面发表评论的人。现在我对散列的工作原理有了更好的理解,我想尝试为 HashSet<int> 创建一个无冲突的散列。正如我用无界 N 描述的那样,要么不可能,要么太难,因此不值得。

我在这个问题下也找到了一个很好的解决方案:How do I use HashSet<T> as a dictionary key? .我不确定它的性能如何,但至少它很容易实现。

最佳答案

更好的方法是在列表中生成您的值的哈希值,并使用带有 int 或 long 作为键的字典。

关于C# 一组已知整数作为字典自定义键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40535408/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com