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 |