我的VS2010使用ReSharper,提示将foreach
转换为LINQ。它转换自
foreach (var item in quotePrice.ExtraServiceBreakdown)
{
hazmatRate = (quoteRequest.IsHazMat && item.Id == VitranHazmatCode) ?
item.Cost : hazmatRate;
}
到
hazmatRate = quotePrice.ExtraServiceBreakdown.Aggregate(
hazmatRate, (current, item) =>
(quoteRequest.IsHazMat && item.Id == VitranHazmatCode) ?
item.Cost : current);
我在这里有两个问题,
current
的含义是什么?这是指向变量hazmatRate
?Aggregate
实际上做了什么? 答案 0 :(得分:1)
而且我认为你需要像蒂姆的评论中所说的那样做:
hazmatRate += (quoteRequest.IsHazMat && item.Id == VitranHazmatCode) ? item.Cost : hazmatRate;
但是在这种情况下,我会改变“危险品”'按功能前声明的基本费率。否则,在使指数增长之前,您将使用其包含的值增加您的值