c# – Dictionary – 比较数组中的值,而不是引用?

c# – Dictionary – 比较数组中的值,而不是引用?,第1张

概述我使用字典存储ID,otherID和bool值.不幸的是它比较了数组引用,因此我无法使用它. 有没有办法如何将数组作为键,但比较其值而不是引用? 谢谢 您可以使用字典的 Comparer property将其设置为您创建的自定义比较器. 编辑:实际上该属性是只读的,抱歉.你应该使用正确的构造函数: class IntArrayComparer : IEqualityComparer<int[]> 我使用字典存储ID,otherID和bool值.不幸的是它比较了数组引用,因此我无法使用它.
有没有办法如何将数组作为键,但比较其值而不是引用?
谢谢解决方法 您可以使用字典的 Comparer property将其设置为您创建的自定义比较器.

编辑:实际上该属性是只读的,抱歉.你应该使用正确的构造函数:

class IntArrayComparer : IEqualityComparer<int[]> {    public bool Equals(int[] x,int[] y) {        if (x.Length != y.Length) {            return false;        }        for (int i = 0; i < x.Length; ++i) {            if (x[i] != y[i]) {                return false;            }        }        return true;    }    public int GetHashCode(int[] obj) {        int ret = 0;        for (int i = 0; i < obj.Length; ++i) {            ret ^= obj[i].GetHashCode();        }        return ret;    }}static voID Main(string[] args) {    Dictionary<int[],bool> dict = new Dictionary<int[],bool>(new IntArrayComparer());}
总结

以上是内存溢出为你收集整理的c# – Dictionary – 比较数组中的值,而不是引用?全部内容,希望文章能够帮你解决c# – Dictionary – 比较数组中的值,而不是引用?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1240960.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-06
下一篇2022-06-06

发表评论

登录后才能评论

评论列表(0条)

    保存