通过VB中的第二列对List进行排序

时间:2013-01-04 22:15:52

标签: vb.net list sorting visual-studio-2012

我正在使用一个循环来构建文件名列表及其创建日期:

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或sort方法,但我无法弄清楚如何正确实现它们。有人可以帮我一把吗?

3 个答案:

答案 0 :(得分:6)

这会对原始列表进行排序,而不使用List.Sort创建新列表(如Linq方法):

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

答案 1 :(得分:2)

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

应该做的伎俩

答案 2 :(得分:1)

使用一些简单的LINQ有什么问题?

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