Use Array.Sort() to sort object array : Array Class « Collections « VB.Net Tutorial






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








8.4.Array Class
8.4.1.Two-dimensional Array with Array.CreateInstance
8.4.2.One dimensional Array with Array.CreateInstance
8.4.3.Array.CreateInstance(GetType(Integer), 11)
8.4.4.Array.CreateInstance(GetType(String), 10)
8.4.5.Array.GetLength, Array.GetUpperBound
8.4.6.Array SetValue and GetValue
8.4.7.Array.Copy: Copy elements by position
8.4.8.Copy array elements from one array to another
8.4.9.Reverse array elements
8.4.10.Use Array.Sort() to sort object array
8.4.11.Array.IndexOf
8.4.12.Array.LastIndexOf
8.4.13.Get Enumerator from array