Imports System
Imports System.Linq
Imports System.Collections.Generic
Public Class Item
Public Property Name As String
Public Property Code As Integer
End Class
Public Class ItemComparer
Implements IEqualityComparer(Of Item)
Public Function Equals1(ByVal x As Item, ByVal y As Item) As Boolean Implements IEqualityComparer(Of Item).Equals
If x Is y Then Return True
If x Is Nothing OrElse y Is Nothing Then Return False
Return (x.Code = y.Code) AndAlso (x.Name = y.Name)
End Function
Public Function GetHashCode1(ByVal product As Item) As Integer Implements IEqualityComparer(Of Item).GetHashCode
If product Is Nothing Then Return 0
Dim hashItemName = If(product.Name Is Nothing, 0, product.Name.GetHashCode())
Dim hashItemCode = product.Code.GetHashCode()
Return hashItemName Xor hashItemCode
End Function
End Class
Public Class Example
Public Shared Sub Main()
Dim storeA() As Item =
{New Item With {.Name = "apple", .Code = 9},
New Item With {.Name = "orange", .Code = 4}}
Dim storeB() As Item =
{New Item With {.Name = "apple", .Code = 9},
New Item With {.Name = "orange", .Code = 4}}
Dim equalAB = storeA.SequenceEqual(storeB, New ItemComparer())
Console.WriteLine("Equal? " & equalAB)
End Sub
End Class