lambda语句中的值

时间:2014-03-14 12:33:27

标签: c# lambda

在以下声明中,我将加载“可出租物品”预订的总成本数量'。 这些是在“预订线”中添加的。在我的预订。租用的对象具有定义对象类型的rentalObjectType。在这种类型中'价格存储在日期范围内。

我使用方法" RetrievePrices(datetime,datetime)"获得总数。 这就像一个魅力,但它使用StartDate& amp; EndDate来自预订。在某些情况下,每个预订行可能会有不同的开始和/或返回日期。

我正在探讨如何在reservationLine.StartDate方法中使用RetrievePrices()(和EndDate)。

我这样做:

 return this.Lines.Select(reservationLine => reservationLine.RentalObject)
 .Select(rentalObject => rentalObject.RentalObjectType)
 .Sum(rentalObjectType => rentalObjectType.RetrievePrices(this.StartDate, this.ReturnDate)
 .Sum(rentalObjectPrice => rentalObjectPrice.Price));

并且希望做类似的事情:

return this.Lines.Select(reservationLine => reservationLine.RentalObject)
 .Select(rentalObject => rentalObject.RentalObjectType)
 .Sum(rentalObjectType => rentalObjectType.RetrievePrices(reservationLine.StartDate, reservationLine.ReturnDate)
 .Sum(rentalObjectPrice => rentalObjectPrice.Price));

提前致谢!

史蒂夫

2 个答案:

答案 0 :(得分:3)

您可以跳过所有选择,只需立即付款即可。然后,您将能够访问lambda中的reservationLine

return this.Lines.Sum(reservationLine =>
                    reservationLine.RentalObject
                                   .RentalObjectType
                                   .RetrievePrices(reservationLine.StartDate, reservationLine.ReturnDate)
                                   .Sum(rentalObjectPrice => rentalObjectPrice.Price));

答案 1 :(得分:0)

我可能会遗漏一些显而易见的东西,但这不会有什么效果吗?

return this.Lines
    .Select(reservationLine => reservationLine.RentalObject.RentalObjectType.RetrievePrices(reservationLine.StartDate,  reservationLine.ReturnDate))
    .Sum(rentalObjectPrice => rentalObjectPrice.Price));