【发布时间】:2015-10-01 17:54:54
【问题描述】:
我有航班对象列表。在此列表中,每个航班对象都有段对象列表。此段对象列表中的每个项目都有 FareDisplayInfos 对象列表。每个 FareDisplayInfos 对象都有诸如 totalFare 之类的属性
我想获得 Max totalFare。所以我这样编码。
Model.Flights.Max(a => a.FlightSegments.FirstOrDefault().FareDisplayInfos.Max(c => c.TotalFare));
但它给出了零,因为一些 totalFare 为空,而一些值为零。 如何消除空对象或零对象 注意:不仅 TotalFare 为零或为空。有时 FareDisplayInfos 等对象为空
编辑
在 tim-schmelter 的帮助下,我对此进行了编码,但将最大值设置为 0(零) 虽然这个(LeaveRouteListAcer)中有 43 个项目,并且这个项目有 FlightSegments,该段有很多 FareDisplayInfos 并且 FareDisplayInfos 有总票价(有些票价是 0 有些是 90....)
var maxTotalFare = hModel.LeaveList
.SelectMany(f => f.FlightSegments
.Where(fs => fs != null && fs.FareDisplayInfos != null)
.Select(fs => fs.FareDisplayInfos.Max(fdi => fdi.TotalFare))
.DefaultIfEmpty(0))
.Max();
【问题讨论】:
标签: asp.net-mvc linq linq-to-sql linq-to-entities