2014-01-17 49 views
0

我有一個字符串排序列表 「1.23.23.3」

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

退房[這個問題](http://stackoverflow.com/questions/8975698/implements-custom-icomparer-with-string)開始。 – Koen

+0

@Koen正是我所需要的。謝謝 – UrsulRosu

+0

不客氣。如果你以某種方式卡住,只需用相關的代碼片段更新你的問題。 – Koen

回答

2

節省一點的工作,你也可以使用Version,而不是字符串:

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 
+0

不知道這件事。超!謝謝! – UrsulRosu

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 
+3

用C#語法回答VB.Net標記的問題沒有什麼幫助,除非C#代碼在VB中具有直接的等價性。 – rheitzman