Mega Code Archive

 
Categories / VB.Net Tutorial / Collections
 

Use custom Comparer to compare objects

Imports System.Collections public class Test       public Shared Sub Main         Dim emps(4) As Employee         emps(0) = New Employee("R", "S")         emps(1) = New Employee("S", "A")         emps(2) = New Employee("T", "P")         emps(3) = New Employee("H", "S")         emps(4) = New Employee("E", "C")         Dim emp_comparer As New EmployeeComparer         Array.Sort(emps, emp_comparer)         For i As Integer = 0 To emps.GetUpperBound(0)             Console.WriteLine(emps(i).ToString())         Next i    End Sub     End class Public Class Employee     Public FirstName As String     Public LastName As String     Public Sub New(ByVal first_name As String, ByVal last_name As String)         FirstName = first_name         LastName = last_name     End Sub     Public Overrides Function ToString() As String         Return LastName & ", " & FirstName     End Function End Class Public Class EmployeeComparer     Implements IComparer     Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer _      Implements System.Collections.IComparer.Compare         Dim mgr1 As Employee = DirectCast(x, Employee)         Dim mgr2 As Employee = DirectCast(y, Employee)         Return String.Compare(mgr1.ToString, mgr2.ToString)     End Function End Class A, S C, E P, T S, H S, R