How to sort an array of strings where each string represents a decimal number in VB.NET

1 Answer

0 votes
Imports System

Public Class SortDecimalStrings
	' Comparator method to sort strings as decimal numbers
    Public Shared Function CompareAsDecimal(ByVal a As String, ByVal b As String) As Integer
		' Convert strings to double for comparison
        Dim numA As Double = Double.Parse(a)
        Dim numB As Double = Double.Parse(b)
		
        Return numA.CompareTo(numB)
    End Function

    Public Shared Sub Main(ByVal args As String())
		' Input array of strings
        Dim numbers As String() = {"12.3", "5.6", "789.1", "3.14", "456.0", "0", "0.01", "4.0"}
		
		' Sort the array using the custom comparator
        Array.Sort(numbers, AddressOf CompareAsDecimal)
        Console.WriteLine("Sorted array of decimal strings:")

        For Each num As String In numbers
            Console.Write(num & "  ")
        Next
    End Sub
End Class



' run:
'
' Sorted array of decimal strings:
' 0  0.01  3.14  4.0  5.6  12.3  456.0  789.1 
'

 



answered Sep 1, 2025 by avibootz
...