VB.Net/Data Structure/IComparable
Array Sort Object who implements the IComparable
<source lang="vbnet"> 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) " Display the results. Dim txt As String = "" For i As Integer = 0 To student.GetUpperBound(0) Console.WriteLine( student(i).ToString() ) Next i 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.rupareTo Dim other_Student As Student = DirectCast(obj, Student) Return String.rupare(Me.ToString, other_Student.ToString) End Function
End Class
</source>
Binary SearchObject who implements the IComparable
<source lang="vbnet"> 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.rupareTo Dim other_Student As Student = DirectCast(obj, Student) Return String.rupare(Me.ToString, other_Student.ToString) End Function
End Class
</source>