VB.Net/Data Structure/IComparable

Материал из VB Эксперт
Перейти к: навигация, поиск

Array Sort Object 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)
        " 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


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.rupareTo
        Dim other_Student As Student = DirectCast(obj, Student)
        Return String.rupare(Me.ToString, other_Student.ToString)
    End Function
End Class