Binary SearchObject who implements the IComparable
Imports System
Public Class MainClass
Shared Sub Main(ByVal args As String())
Dim student(4) As Student
student(0) = New Student("A", "A")
student(1) = New Student("B", "A")
student(2) = New Student("C", "B")
student(3) = New Student("D", "B")
student(4) = New Student("E", "C")
' Sort.
Array.Sort(student)
' Find E C
Dim target_student As New Student("E", "C")
Dim target_index As Integer = Array.BinarySearch(student, target_student)
target_student = student(target_index)
Console.WriteLine(target_student.ToString)
End Sub
End Class
Public Class Student
Implements IComparable
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
Public Function CompareTo(ByVal obj As Object) As Integer _
Implements System.IComparable.CompareTo
Dim other_Student As Student = DirectCast(obj, Student)
Return String.Compare(Me.ToString, other_Student.ToString)
End Function
End Class
Related examples in the same category