16,553
社区成员
发帖
与我相关
我的任务
分享
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim Array1 As String() = {"1", "2", "3"}
Dim Array2 As String() = {"1", "2", "3"}
Dim List1 As New List(Of String())
List1.Add(New String() {"2", "3", "4"})
List1.Add(New String() {"1", "2", "3"})
List1.Add(New String() {"4", "5", "6"})
Dim Boolean1 As Boolean = List1.Contains(Array1)
Dim Boolean2 As Boolean = Array1.Equals(Array2)
Dim Boolean3 As Boolean = Array1 Is Array2
End Sub
End Class
Public Class ProductA
Public Name As String
Public Code As Integer
Overloads Function SequenceEqual(obj As ProductA) As Boolean
'检查对象是否是相同的对象。
If Object.ReferenceEquals(Me, obj) Then Return True
'检查类的属性是否相等。
Return Me IsNot Nothing And obj IsNot Nothing And Me.Code.Equals(obj.Code) And Me.Name.Equals(obj.Name)
End Function
Overloads Function GetHashCode() As Integer
'获取名称字段的哈希码,如果它不为空。
Dim hashProductName As Integer = IIf(Me.Name Is Nothing, 0, Me.Name.GetHashCode())
'获取代码字段的哈希码。
Dim hashProductCode As Integer = Me.Code.GetHashCode()
'异或计算类的哈希码。
Return hashProductName Xor hashProductCode
End Function
End Class
Sub SequenceEqualEx1()
Dim storeA() As ProductA =
{New ProductA With {.Name = "apple", .Code = 9},
New ProductA With {.Name = "orange", .Code = 4}}
Dim storeB() As ProductA =
{New ProductA With {.Name = "apple", .Code = 9},
New ProductA With {.Name = "orange", .Code = 0}}
Dim equalAB As Boolean = storeA(0).SequenceEqual(storeB(0))
Dim equalBC As Boolean = storeA(1).SequenceEqual(storeB(1))
Dim A0 As Integer = storeA(0).GetHashCode()
Dim B0 As Integer = storeB(0).GetHashCode()
Dim A1 As Integer = storeA(1).GetHashCode()
Dim B1 As Integer = storeB(1).GetHashCode()
MsgBox("A0等于B0吗? " & equalAB & vbCrLf &
"A1等于B1吗? " & equalBC & vbCrLf &
"HashA0: " & A0 & vbCrLf &
"HashB0: " & B0 & vbCrLf &
"HashA1: " & A1 & vbCrLf &
"HashB1: " & B1)
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
SequenceEqualEx1()
End Sub