Saltar al contenido

Ordenar una lista de objetos en VB.NET

Solución:

Para ordenar por una propiedad en el objeto, debe especificar un comparador o un método para obtener esa propiedad.

Utilizando el List.Sort método:

theList.Sort(Function(x, y) x.age.CompareTo(y.age))

Utilizando el OrderBy método de extensión:

theList = theList.OrderBy(Function(x) x.age).ToList()

Si necesita una clasificación de cadena personalizada, puede crear una función que devuelva un número según el orden que especifique.

Por ejemplo, tenía imágenes que quería ordenar en función del anverso o el broche. Entonces hice lo siguiente:

Private Function sortpictures(s As String) As Integer
    If Regex.IsMatch(s, "FRONT") Then
        Return 0
    ElseIf Regex.IsMatch(s, "SIDE") Then
        Return 1
    ElseIf Regex.IsMatch(s, "CLASP") Then
        Return 2
    Else
        Return 3
    End If
End Function

Luego llamo a la función de clasificación así:

list.Sort(Function(elA As String, elB As String)
                  Return sortpictures(elA).CompareTo(sortpictures(elB))
              End Function)
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *