Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: elmaro en 26 Noviembre 2009, 15:31 pm



Título: Ordernar Collection en VB.NET
Publicado por: elmaro en 26 Noviembre 2009, 15:31 pm
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:
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