2013-01-04 123 views
2

排序列表我使用一個循環,建立文件名和它們的創建日期的列表:填充列表第二列在VB

Dim datelist As New List(Of KeyValuePair(Of String, Date)) 
Dim values As New KeyValuePair(Of String, Date)(filename, initialdate) 
    If Not datelist.Contains(values) Then 
     datelist.Add(values) 
    End If 

後,我需要按日期排序,它在執行前一些其他功能。 我一直在尋找orderby或排序方法,但我無法弄清楚如何正確實現它們。有人能幫我一把嗎?

+0

爲什麼不是'Dictionary(Of String,Date)'? – SWeko

回答

5

這個排序原始列表,而無需創建一個新的列表(如LINQ的方法):

datelist.Sort(Function(kv1, kv2) kv1.Value.CompareTo(kv2.Value)) 
+0

例如(按日期排序):'datelist.Sort(函數(kv1,kv2)kv1.Value.CompareTo(kv2.Value))' –

+0

@TimSchmelter - 是的...忘了'KeyValuePair'是一個結構,而不是一個類... – prprcupofcoffee

+0

謝謝蒂姆,那種代碼的工作很好。 – Mellonjollie

2
Dim sorted = (From item In datelist Order By item.Value Select item).ToList 

應該做使用List.Sort的伎倆

+0

@TimSchmelter:代碼是正確的,我只是抓錯了變量名。 –

1

出了什麼問題只是用一些簡單的LINQ?

Dim orderedList As List(Of KeyValuePair(Of String, Date)) = datelist.OrderBy(Function(o) o.Value).ToList 
+0

看起來像Dan-o可能先來到這裏。 – Steve