我有一个这样的清单:
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)
答案 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
会返回一个新的,已排序的,可枚举的。