通过属性值对对象的arraylist进行排序的最快方法

时间:2016-09-28 11:48:59

标签: vb.net

就像一个例子,我有一个bananaTreeArray,里面装满了1000个BananaTree对象。每个BananaTree对象都有一个名为Bananas的公共属性。对于我来说,最快/最简单的方法是找到香蕉最多的5种BananaTree?

1 个答案:

答案 0 :(得分:2)

请勿使用ArrayList,而应使用通用且强类型的List(Of T),在这种情况下为List(Of BananaTree)。然后用LINQ很简单:

Dim top5Bananas = From btree In bananaTreeArray
                  Order by btree.Bananas Descending
                  Take 5

如果它真的是ArrayList你必须施放每个物体:

Dim top5Bananas = From btree In bananaTreeArray.Cast(of BananaTree)()
                  Order by btree.Bananas Descending
                  Take 5

您可以使用For Each循环此查询,也可以创建列表/数组,例如:

Dim top5BananaList = top5Bananas.ToList()