English 中文(简体)
VB 载重:平等 NET 用作关键词的物体
原标题:Overload Equals / GetHashCode in VB.NET to Use Objects as Dictionary Keys

我有一位理论家,其钥匙是Excel平地物体(无,不流通),定义如下(电池组是一种含有各种细胞特性的物体):

Dim dic As New Dictionary(Of Excel.Range, CellProp)(New RangeComparer())

由于钥匙是物体,我需要超负荷行使平等/平等职能。 我目前的执行情况如下:

Class RangeComparer
Implements IEqualityComparer(Of Excel.Range)
Public Overloads Function Equals(ByVal x As Excel.Range, ByVal y As Excel.Range) As Boolean Implements IEqualityComparer(Of Excel.Range).Equals
    If x.Address(External:=True) = y.Address(External:=True) Then
        Return True
    Else
        Return False
    End If
End Function
Public Overloads Function GetHashCode(ByVal obj As Excel.Range) As Integer Implements IEqualityComparer(Of Excel.Range).GetHashCode
      Return obj.Count.GetHashCode
    End Function
End Class

However, this can be pretty slow to execute when adding many cells (i.e. hundreds) to the Dictionary at once. Most importantly, is there a faster way to do this? Secondarily, why does getting the hash code for the Range s Count property seem to work (albeit slowly)?

问题回答




相关问题
Is Shared ReadOnly lazyloaded?

I was wondering when I write Shared ReadOnly Variable As DataType = New DataType() Or alternatively Shared ReadOnly Variable As New DataType() Is it lazy loaded or as the instance initializes? ...

Entertaining a baby with VB.NET

I would like to write a little application in VB.NET that will detect a baby s cry. How would I get started with such an application?

Choose Enter Rather than Pressing Ok button

I have many fields in the page and the last field is a dropdown with list of values. When I select an item in a dropdown and press Enter, it doesn t do the "Ok". Instead I have to manually click on Ok ...

ALT Key Shortcuts Hidden

I am using VS2008 and creating forms. By default, the underscore of the character in a textbox when using an ampersand is not shown when I run the application. ex. "&Goto Here" is not ...

Set Select command in code

On button Click I want to Set the Select command of a Gridview. I do this and then databind the grid but it doesn t work. What am i doing wrong? protected void bttnView_Click(object sender, ...

Hover tooltip on specific words in rich text box?

I m trying to create something like a tooltip suddenly hoovering over the mouse pointer when specific words in the richt text box is hovered over. How can this be done?