Foros del Web » Programación para mayores de 30 ;) » .NET »

Sort Arraylist

Estas en el tema de Sort Arraylist en el foro de .NET en Foros del Web. Buenas, tengo un Arraylist lleno con objetos, los cuales tienen una propiedad NOMBRE.... como hago para Ordenar este arraylist por esa propiedad NOMBRE, ya sea ...
  #1 (permalink)  
Antiguo 28/12/2005, 15:35
 
Fecha de Ingreso: junio-2004
Mensajes: 84
Antigüedad: 19 años, 10 meses
Puntos: 0
Sort Arraylist

Buenas,

tengo un Arraylist lleno con objetos, los cuales tienen una propiedad NOMBRE.... como hago para Ordenar este arraylist por esa propiedad NOMBRE, ya sea Ascendente o descendentemente.

gracias
  #2 (permalink)  
Antiguo 29/12/2005, 09:38
Avatar de Alex Reyes  
Fecha de Ingreso: diciembre-2005
Ubicación: Camarillo, CA
Mensajes: 242
Antigüedad: 18 años, 4 meses
Puntos: 2
Primero, en tu código haces un Enum de la siguiente manera:

Código:
 
Public Enum CompareByOptions
     DateReceived
     JobID
     ClientID
     From
End Enum
En este enum vas a poner el nombre de las propiedades del objeto que quieres ordenar, ya sea nombre, o apellidos, etc.

Además tienes que hacer una clase que Implemente la Interface ICompare.
En mi caso quedó de la siguiente manera

Código:
 
Public Class comparePkgs
                           Implements IComparer
 
            Private compareBy As CompareByOptions =   CompareByOptions.DateReceived
 
            Public Sub New(ByVal cBy As CompareByOptions)
                           compareBy = cBy
            End Sub
 
            Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer Implements System.Collections.IComparer.Compare
 
' Convert Pkg1 and Pkg2
                            Dim p1 As TomsWN.MyPkg = DirectCast(x, TomsWN.MyPkg)
                            Dim p2 As TomsWN.MyPkg = DirectCast(y, TomsWN.MyPkg)
                            Select Case compareBy
                                    Case CompareByOptions.DateReceived 
                                               Return DateTime.Compare(p1.ReceivedDate, p2.ReceivedDate)
                                    Case CompareByOptions.ClientID
                                               Return String.Compare(p1.ClientID, p2.ClientID)
                                    Case CompareByOptions.From
                                               Return String.Compare(p1.From, p2.From)
                                    Case CompareByOptions.JobID
                                              Return String.Compare(p1.JobID, p2.JobID)
                            End Select
            End Function
End Class
En este ejemplo, p1 y p2 deben de ser del mismo tipo que los objetos que quieras comparar.


Ahora, después de que tienes tu Array lleno con todos los elementos, utiliza el metodo Sort de la siguiente manera:

Código:
 
Array.Sort(myArray, New comparePkgs(CompareByOptions.DateReceived))
El código lo adapté de un artículo publicado en www.4guysfromrolla.com pero se me hizo mas rápido publicar mi código que buscar el artículo.

Espero haya sido de ayuda.
__________________
Alex Reyes
http://jalexreyes.spaces.live.com
  #3 (permalink)  
Antiguo 29/12/2005, 17:45
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 4 meses
Puntos: 7
Todo eso se puede encontrar en la documentación:
http://msdn.microsoft.com/library/de...SortTopic2.asp

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:56.