【问题标题】:Built in Function for Sort Alpha Numeric Values用于排序字母数字值的内置函数
【发布时间】:2015-01-29 14:40:31
【问题描述】:

我只需要知道是否有任何内置功能可以在 Dot Net 中实现排序功能[字母数字]。如果有请告诉我。

这是我需要的

输入:
数据0
数据1
数据10
数据19
数据2
数据22
数据3
数据31

输出:

数据0
数据1
数据2
数据3
数据10
数据19
数据22
数据31

【问题讨论】:

  • 没有内置任何东西可以将“data9”视为小于“data100”,因为字符/字符串不是数字。您可以编写自己的分类器,或者根据它们的含义为这些东西分配一个值

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


【解决方案1】:

对于您要查找的内容没有内置函数。如果“数据”的长度始终与示例中的相同。您可以比较字符串的长度,然后是字符串本身。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-27
    • 2017-06-05
    • 1970-01-01
    • 2021-11-10
    • 1970-01-01
    • 2015-06-22
    • 1970-01-01
    相关资源
    最近更新 更多