with sort ordenar net lista ejemplos .net vb.net sorting

sort - ¿Cómo ordenar un System.Collections.Generic.List en VB.Net?



sort with comparator c# (4)

¿Estás usando VB9? Si es así, usaría una expresión lambda para crear un Comparer(Of Schedule_PayItem) . De lo contrario, escriba una clase corta para implementar IComparer(Of Schedule_PayItem) . pase cualquiera que tenga en List.Sort.

Un ejemplo para la expresión lambda (no probado):

m_equipmentList.Sort(Function(p1, p2) p1.ResourceID.CompareTo(p2.ResourceID))

Y para el IComparer(Of Schedule_PayItem) :

Public Class PayItemResourceComparer Implements IComparer(Of Schedule_PayItem) Public Function Compare(ByVal p1 As Schedule_PayItem, _ ByVal p2 As Schedule_PayItem) As Integer Return p1.ResourceID.CompareTo(p2.ResourceID) End Function End Class ... m_equipmentList.Sort(New PayItemResourceComparer)

Utilizo una lista genérica (m_equipmentList) que es una colección de objetos (Schedule_Payitem).
¿Cómo puede ordenar la lista de acuerdo con la libertad de un objeto infantil?

Dim m_equipmentList As New List(Of Schedule_Payitem)

Necesita ordenar m_equipmentList en base a la propiedad resourceid de Schedule_Payitem.


No conozco vb.net, así que lo hice en C #

m_equipmentList.Sort( (payItem1,payItem2)=>payItem1.ResourceID.CompareTo(payItem2.ResourceID));

y al usar el reflector lo tradujo a vb.net espero que ayude

m_equipmentList.Sort( Function (ByVal payItem1 As Schedule_Payitem, ByVal payItem2 As Schedule_Payitem) Return payItem1.ResourceID.CompareTo(payItem2.ResourceID) End Function)

o puede heredar Schedule_Payitem de IComparable e implementar CompareTo y luego simplemente llamar a m_equipmentList.Sort()


Prueba esto

Dim m_equipmentList As New List(Of Schedule_Payitem) m_equipmentList.Sort(delegate(Schedule_Payitem p1, Schedule_Payitem p2) { return p1.resourceid .CompareTo(p2.resourceid ); });


Puede lograr ordenar la lista en orden descendente cambiando esta-

m_equipmentList.Sort( Function (ByVal payItem1 As Schedule_Payitem, ByVal payItem2 As Schedule_Payitem) Return payItem1.ResourceID.CompareTo(payItem2.ResourceID) End Function)

a esto

m_equipmentList.Sort( Function (ByVal payItem1 As Schedule_Payitem, ByVal payItem2 As Schedule_Payitem) Return payItem2.ResourceID.CompareTo(payItem1.ResourceID) End Function)