在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

给TA打赏
共{{data.count}}人
人已打赏
未分类

python poetry

2022-9-7 22:33:21

未分类

如何更改正在运行的任务的访问权限 (c)

2022-9-7 22:33:23

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索