我无法使用visual basic Integer()作为字典的键.我有一个问题,即使我传递ContainsKey()一个与现有键具有相同值的数组,它返回false.我想这可能是因为ContainKey()检查内存中的对象是否相同,如果它们相等.正确?我有以下代码结构:
Dim RGB(3) As Integer
Dim dic as Dictonary(Of Integer(), Double())
...
...
If dic.ContainsKey(RGB) Then 'This never returns true
meritValue = (MerirtLookUpAVG(RGB)(0) * MerirtLookUpAVG(RGB)(1) + meritValue) / MerirtLookUpAVG(RGB)(0) + 1
MerirtLookUpAVG(RGB)(0) += 1
MerirtLookUpAVG(RGB)(1) = meritValue
Else
MeirtLookUpAVG.Add(RGB, {1, meritValue}
EndIf
Run Code Online (Sandbox Code Playgroud)
您需要使用Dictionary的构造函数,该构造函数接受IEqualityComparer(Of T)
您的密钥类型的自定义.
没有自定义的数组IEqualityComparer(Of T)
不是有效的对象类型,而是字典(或其他基于散列的集合)的键.
归档时间: |
|
查看次数: |
107 次 |
最近记录: |