我有一个C#中的车辆数组,其中一些是汽车,另一些是SUV。我想知道获取最轻的车的最佳方法是什么。如果在数组中找不到汽车,则查找最轻的SUV。
以下是我使用LINQ的代码片段。我想知道是否有更好的方法可以使用一个查询来获取这个而不是两个查询。
Vehicle listVehicles[] = ...
Vehicle lightestVehicle = (from aVehicle in listVehicles
where aVehicle.Type == CAR
orderby aVehicle.Weight ascending)?.FirstOrDefault();
if (null == lightestVehicle)
lightestVehicle = (from aVehicle in listVehicles
where aVehicle.Type == SUV
orderby aVehicle.Weight ascending)?.FirstOrDefault();
return lightestVehicle;
有没有更好的方法使用groupby或其他LINQ技巧来完成同样的任务?