![]() |
1
3
您必须定义自己的容器,可能会包装列表,以获得相等哈希等于(gethashcode和equals)的有用语义。如果你愿意的话,你甚至可以使包装符合IList。 为了避免可变问题和更改gethashcode/equals结果(这会使哈希字典中新对象的使用有问题!)您还应该提供某种保护(可能在创建类型时复制输入)和/或记录约束。 你可以使用 SequenceEqual 要实现equals相当琐碎,但您需要以相关的方式实现gethashcode——一个简单的方法是每个元素的gethashcode的移位xor。 或者,如果这只是在单个字典中使用,则可以提供自定义 IEqualityComparer 避免创建包装类型: Dictionary constructor overload . 这取决于你的最终目标是什么,而且很可能已经有了这样的包装容器:—) 注:在.net4中有一组 Tuple<...> classes 它重写gethashcode和equals。见 cadenza 作为早期.NET版本的第三方备选方案。 |
![]() |
Jahongir Rahmonov · 计算文件的校验和 7 年前 |
![]() |
Lev Knoblock · 类哈希函数 7 年前 |
![]() |
Sazzad Hissain Khan · 算法-在二维矩阵中搜索 7 年前 |
![]() |
Asur · 如何在PHP中同时使用多种算法对文件进行哈希? 7 年前 |
![]() |
OofYeetMcGee · 实现PBKDF2 7 年前 |
![]() |
yibs · 如何在Perl中计算csv中具有相同id的项目数 7 年前 |