Estuve viendo que en la web muchos preguntan como ordenar una colección de items. Hice una pequeña función y bien sencilla para ordenar en orden ascendente y descendente una colección del tipo Collection.
Empezamos con esto:
Código:
Public Enum OrderByDirection
Ascendant = 0
Descending = 1
End Enum
Y seguimos con:
Código:
Public Function SortCollection(ByVal Collection As Collection, Optional ByVal OrderBy As OrderByDirection = OrderByDirection.Ascendant) As Collection
Dim ArrayList As New ArrayList
Dim Ret As New Collection
ArrayList.AddRange(Collection)
If OrderBy = OrderByDirection.Ascendant Then
ArrayList.Sort()
Else
ArrayList.Sort()
ArrayList.Reverse()
End If
For Each sItem As String In ArrayList
Ret.Add(sItem)
Next
Return Ret
End Function
Para su utilizacion:
Código:
Dim Col As New Collection
Col.Add("01")
Col.Add("06")
Col.Add("03")
Col.Add("04")
Col.Add("07")
Col.Add("24")
Col = SortCollection(Col, OrderByDirection.Ascendant)
El funcionamiento es sencillo. Se carga un ArrayList desde una colección y se pasan los métodos Sort y Sort + Reverse según el tipo de ordenación que se elija.
Espero que les sirva.
Saludos