在VB.NET中根据子类型的数量对List对象进行排序。

我有一个基础班 vehicle 并有一个不同的子类列表(Car,Motorbike, Bicycle). 现在,我想得到列表中对象的每个子类的数量,按降序排列。

Dim ListOfVehicle = New List(Of Vehicle)

ListOfVehicle.Add(New Car(50, "Rot", "Mercedes"))

ListOfVehicle.Add(New Car(70, "Grün", "Audi"))

ListOfVehicle.Add(New Car(20, "Violet", "Tesla"))

ListOfVehicle.Add(New Car(150, "Blau", "BMW"))

ListOfVehicle.Add(New Motorbike(70, "Grün", "Kawasaki"))

ListOfVehicle.Add(New Motorbike(120, "Rot", "Honda"))

ListOfVehicle.Add(New Motorbike(200, "Pink", "BMW"))

ListOfVehicle.Add(New Bicycle(20, "Blau", "Cube"))

ListOfVehicle.Add(New Bicycle(250, "Orange", "BMC"))


输出结果应该是这样的。汽车 -4 摩托车 -3 自行车 -2

解决方案:

使用 ToLookup 挨个儿数 GetType 键并按降序排序。然后用 Key 财产和 Count() 方法。

Dim lookup = ListOfVehicle.ToLookup(Function(x) x.[GetType]()).OrderByDescending(Function(x) x.Count())

For each vehicle in lookup
    Console.WriteLine(vehicle.Key.ToString() + " - " + vehicle.Count().ToString())
Next

本文来自投稿,不代表运维实战侠立场,如若转载,请注明出处:https://www.shizhanxia.com/647.html

(0)
上一篇 2022年6月29日 下午3:58
下一篇 2022年6月29日 下午3:59

相关推荐

发表评论

登录后才能评论