排序格式为“1.23.23.3”的字符串列表

时间:2014-01-17 09:44:26

标签: vb.net sorting

我有一个字符串列表

Dim myList as new List(Of String)

1.7 
1.8 
1.9 
1.10    
1.10.1.1
1.10.1.2
1.10.1.3
1.7.1.1
1.7.1.2
1.7.1.3
1.7.1.4

我想订购它们

1.7 
1.7.1.1
1.7.1.2
1.7.1.3  
1.7.1.4
1.8 
1.9 
1.10    
1.10.1.1
1.10.1.2
1.10.1.3
使用

myList.Sort( comparer here? )

如何编写简单的比较器函数?

2 个答案:

答案 0 :(得分:2)

为了节省一些工作,您还可以使用Version而不是String:

Dim versions As New List(Of Version) From {New Version("1.7"),
                                           New Version("1.8"),
                                           New Version("1.9"),
                                           New Version("1.10"),
                                           New Version("1.10.1.1"),
                                           New Version("1.10.1.2"),
                                           New Version("1.10.1.3"),
                                           New Version("1.7.1.1"),
                                           New Version("1.7.1.2"),
                                           New Version("1.7.1.3"),
                                           New Version("1.7.1.4")}

versions.Sort()
For Each v As Version In versions
    Console.WriteLine(v.ToString)
Next

答案 1 :(得分:0)

Collections.sort(myList, new Comparator<String>(){
        public int compare(String str1, String str2) {
            return str1.compareTo(str2);
        }
    });

Collections.sort(myList, (String str1, String str2) -> {return str1.compareTo(str2);}); //java 8