quelle sono stringhe. Pertanto l'ordinamento è giusto.
100 viene prima di 2
BAA viene prima di C

bisogna ordinare secondo criteri numerici

codice:
Option Strict On
Imports l = libreria.ModuloWeb
Imports System.Globalization

Module Module1

    Sub Main(args As String())

        Dim tmpStructure As New List(Of String)()
        tmpStructure.Add("1.00")
        tmpStructure.Add("100.00")
        tmpStructure.Add("99.00")
        tmpStructure.Add("4.40")
        tmpStructure.Add("1.00")
        tmpStructure.Add("1.00")
        tmpStructure.Add("4.40")

        tmpStructure.Sort(Function(x, y) Double.Parse(x, CultureInfo.InvariantCulture).CompareTo(Double.Parse(y, CultureInfo.InvariantCulture)))

        For Each c As String In tmpStructure
            Console.WriteLine(c)
        Next


        Console.Write("Premere un tasto per continuare . . . ") : Console.ReadKey()
    End Sub

End Module