排序列表(Of Tuple)

时间:2013-08-15 14:41:45

标签: .net vb.net linq list tuples

我有一个这样的清单:

Dim Results_List As New List(Of Tuple(Of String, String, Long))

有了这些内容:

(B, a, 5000)
(G, a, 1000)
(B, b, 8000)
(G, b, 2000)

我可以使用LINQ(或whateverelse但不使用慢速FOR)按升序模式按长号对项目进行排序吗?:

(G, a, 1000)
(G, b, 2000)
(B, a, 5000)
(B, b, 8000)

2 个答案:

答案 0 :(得分:7)

var sortedItems = list.OrderBy(t => t.Item3);

答案 1 :(得分:2)

是的,即使使用Sort的内部List

Results_List.Sort(Function(p As Tuple(Of String, String, Long), q As Tuple(Of String, String, Long)) p.Item3.CompareTo(q.Item3))

请注意,这会直接对Results_List进行排序,而OrderBy会返回一个新的,已排序的,可枚举的。