Use SequenceEqual to compare two Arrays
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) Console.WriteLine("Equal? " & equalAB) End Sub End Class
1. | Using SequenceEqual to see if two sequences match on all elements in the same order | ||
2. | Determine if the two lists are equal |