繁体   English   中英

按 VB.NET 中的数字子类型对对象列表进行排序

[英]Sort List of objects by the number subtypes in VB.NET

我有一辆基本的 class 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"))


output 应如下所示:
车 - 4
摩托车 - 3
自行车 - 2

使用ToLookupGetType键计数并按降序排序。 然后 output 使用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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM