字典与数组作为键?面对字典中的问题。数组可以作为值的键吗???字典di=new字典();di.Add(新字符串[]{"1","2"},1);di.Add(新字符串[]{"2","3"},2);MessageBox.Show(di[newstring[]{"2","3"}].ToString());//这里发生了KeyNotFoundException。为什么例外?默认情况下,只会比较对数组的引用,因此您必须提供自定义IEqualityComparer或使用元组而不是键(因为您只有两个字符串)这是一个类似问题的答案,显示了如何为Dictionary执行此操作–构造函数创建自定义比较器。不,实际上你不应该使用数组作为字典键;当使用键时,字典使用其哈希码作为地址计算:String[]a=new[]{"1","2"};String[]b=new[]{"1","2"};a.GetHashCode()==b.GetHashCode();//数组a和b的地址不同,所以hashcode不同是原因di.Add(a,1);迪[b];//因为数组的Equals和GetHashCode函数不是比较内容而是比较数组本身的引用。以上是C#学习教程:字典可以用数组作为键吗?如果分享的所有内容对您有用,需要了解更多C#学习教程,希望您多多关注---本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
