我在使用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
你有沒有考慮過使用'System.Drawing.Color'來存儲數據而不是整數數組?所有你需要做的就是使用['Color.FromArgb('](http://msdn.microsoft.com/en-us/library/cce5h557%28v=vs.110%29.aspx?cs-save-lang = 1&cs-lang = vb)並傳入你的3個值 –
是的,但是我不能在這部分代碼中,因爲我將它們發送給一些數組函數。 –
可變對象不應該用作鍵入詞典 –