none
Ordenar un arraylist por version delimitado por punto "." en VB.NET RRS feed

  • Pregunta

  • tengo esta entrada

    1
    1.1
    1.1.1
    1.1.1.1
    1.1.2
    1.10
    1.11
    1.2
    1.9

    y necesito que se ordene de esta manera

    1
    1.1
    1.1.1
    1.1.1.1
    1.1.2
    1.2
    1.9    
    1.10
    1.11

    He encontrado algunas soluciones pero están en otros lenguajes. este es el código que intente implementar:

        Function GetVersions(ByVal mypath As String) As ArrayList
        Dim Versions As New ArrayList
    
        For Each Ver As String In My.Computer.FileSystem.GetFiles(mypath)
            If IsNumeric(Path.GetFileNameWithoutExtension(Ver)) Then
                Versions.Add(Decimal.Parse(Path.GetFileNameWithoutExtension(Ver)).ToString("#0.00")) 
            End If
        Next
    
        Dim mesg As String = ""
        For Each str As String In Versions
            mesg = mesg & str & vbCrLf
        Next
        MsgBox(mesg)
    
        Return Versions
        End Function

    alguna idea de como ordernarlos?

    martes, 20 de octubre de 2020 13:56

Respuestas

Todas las respuestas

  • Una posibilidad con Linq:

    Dim L= Versions.Max(Function(t) t.Length)
    Dim newArr = Versions.Select(Function(version) New With {Key .valor=version, Key .orden = version.Split(".") _
    .Select(Function(x,index) x * 10^(L-index)).Sum()}).OrderBy(Function(o) o.orden)

    martes, 20 de octubre de 2020 16:02
  • Deleted
    • Marcado como respuesta RHCRD martes, 20 de octubre de 2020 18:25
    martes, 20 de octubre de 2020 16:23
  • Gracias por levantar tu consulta RHCRD. Cerraremos el Hilo, por ende si tiene alguna otra consulta por favor genera otra consulta para que la comunidad de foros te pueda asesorar.

     

    Siempre es un placer atender tus consultas!

    --------------------------------------------------------------------------------

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.

    Si tiene algún cumplido o reclamo sobre el soporte de MSDN sientase en la libertad de contactar  MSDNFSF@microsoft.com. 

    martes, 20 de octubre de 2020 18:57
    Moderador