Use custom Comparer to compare objects : IComparer « Collections « VB.Net Tutorial






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








8.21.IComparer
8.21.1.Implements IComparer
8.21.2.Use custom Comparer to compare objects
8.21.3.Implements IComparer to create Reversed Comparer