Imports System
Module MyModule
Sub Main()
Dim salaries(4) As Salary
salaries(0) = New Salary(9)
salaries(1) = New Salary(4)
salaries(2) = New Salary(8)
salaries(3) = salaries(2)
salaries(4) = New Salary(6)
Console.WriteLine("Unsorted array:")
Dim salary As Salary
For Each salary In salaries
Console.WriteLine("{0}", salary)
Next
Array.Sort(salaries)
Console.WriteLine(vbCrLf & "Sorted array:")
For Each salary In salaries
Console.WriteLine("{0}", salary)
Next
End Sub
End Module
Structure Salary
Implements IComparable
Private value As Integer
Public Sub New(ByVal amount As Double)
Me.value = CInt(amount * 100)
End Sub
Public Function CompareTo(ByVal other As Object) As Integer Implements IComparable.CompareTo
Dim m2 As Salary = CType(other, Salary)
If Me.value < m2.value Then
Return -1
ElseIf Me.value = m2.value Then
Return 0
Else
Return +1
End If
End Function
Public Overrides Function ToString() As String
Return Me.value
End Function
End Structure
Unsorted array:
900
400
800
800
600
Sorted array:
400
600
800
800
900