内置函数用于排序字母数字值

时间:2014-12-01 14:50:54

标签: arrays vb.net list arraylist linked-list

我只需要知道是否有任何内置功能来实现Dot Net中的排序功能[Alpha-Numeric]。如果有,请告诉我。

这就是我需要的东西

输入:
DATA0
数据1
DATA10
data19
数据2
data22
DATA3
data31

输出:

DATA0
数据1
数据2
DATA3
DATA10
data19
data22
data31

1 个答案:

答案 0 :(得分:0)

没有内置功能可以满足您的需求。如果“data”总是与示例中的长度相同。您可以比较字符串的长度,然后比较字符串本身。

Private Function Comparer(ByVal x As String, ByVal y As String) As Integer

    If x.Length = y.Length Then
        Return String.Compare(x, y)
    End If

    Return x.Length.CompareTo(y.Length)
End Function

Sub Main()

    Dim v As New List(Of String)

    v.Add("data0")
    v.Add("data1")
    v.Add("data10")
    v.Add("data19")
    v.Add("data2")
    v.Add("data22")
    v.Add("data3")
    v.Add("data31")

    v.Sort(AddressOf Comparer)

    For Each s As String In v
        Console.WriteLine(s)
    Next

    Console.ReadLine()

End Sub