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
| |||
| 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 |
| ||||
| Primero, en tu código haces un Enum de la siguiente manera:
Código:
En este enum vas a poner el nombre de las propiedades del objeto que quieres ordenar, ya sea nombre, o apellidos, etc.
Public Enum CompareByOptions
DateReceived
JobID
ClientID
From
End Enum
Además tienes que hacer una clase que Implemente la Interface ICompare. En mi caso quedó de la siguiente manera
Código:
En este ejemplo, p1 y p2 deben de ser del mismo tipo que los objetos que quieras comparar.
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
Ahora, después de que tienes tu Array lleno con todos los elementos, utiliza el metodo Sort de la siguiente manera:
Código:
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. Array.Sort(myArray, New comparePkgs(CompareByOptions.DateReceived)) Espero haya sido de ayuda. |
| ||||
| Todo eso se puede encontrar en la documentación: http://msdn.microsoft.com/library/de...SortTopic2.asp Saludos |