【发布时间】:2015-10-12 14:01:24
【问题描述】:
我正在尝试将字符串列表排序为非常特殊的顺序。我有一个“X123XXX”格式的项目列表,其中 X 可以是字母,123 可以是任何数字。
Dim AList As New List(Of String)
AList.Add("B200")
AList.Add("A100X")
AList.Add("A100XY")
AList.Add("A100XYZ")
AList.Sort()
'Actual Return in order (AList(1).tostring etc.)
'A100X
'A100XY
'A100XYZ
'B200
'Desired Return
'A100XYZ
'A100XY
'A100X
'B200
我遇到的问题是,我不仅需要对数字升序和字母降序进行排序,而且还需要对第一个字母升序进行排序。
我希望这些部分始终采用相同的格式(字母 + 3 个数字 + 最多 3 个可选字母)——我可以只选择前 4 个并对该 ASC 进行排序,然后对最后 3 个进行 DESC 排序。但我不知道如何在 vb.net 中做到这一点。看了一圈,只能找到 IComparable 的东西,好像用处不大。
【问题讨论】:
-
总是 3 个数字?我的意思是,1 个字母、3 个数字、X 个字母?
-
是的,它们的开头总是有 3 个数字和 1 个字母。以后我可能不得不在 start 变量处设置字母,但现在不是。
标签: arrays vb.net list sorting