Ordernar Collection en VB.NET

Iniciado por elmaro, 26 Noviembre 2009, 15:31 PM

0 Miembros y 1 Visitante están viendo este tema.

elmaro

Buen día a todos.

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:

Public Enum OrderByDirection
        Ascendant = 0
        Descending = 1
End Enum


Y seguimos con:

   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:

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