How to sort by numbers a mixed pair of string and number elements in a list with VB.NET

1 Answer

0 votes
Imports System
Imports System.Collections.Generic

Module Module1

    Function ExtractNumber(s As String) As Integer
        Dim pos = s.LastIndexOf(" "c)

        Return Integer.Parse(s.Substring(pos + 1))
    End Function

    Sub Main()
		Dim lst As New List(Of String) From {
            "Python 4", "C 9", "C++ 5", "C# 6",
            "Java 1", "PHP 7", "Go 2"
        }

        lst.Sort(Function(a, b)
                     Dim numA = ExtractNumber(a)
                     Dim numB = ExtractNumber(b)
                     Return numA.CompareTo(numB)
                 End Function)

        For Each item In lst
            Console.WriteLine(item)
        Next
    End Sub

End Module



' run:
'
' Java 1
' Go 2
' Python 4
' C++ 5
' C# 6
' PHP 7
' C 9
'

 



answered Jan 22 by avibootz

Related questions

...