1
我的VS2010使用ReSharper,它提示將foreach
轉換爲LINQ。它從使用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
實際上做了什麼?
問題是,你正在設置一個變量在'foreach'沒有打破它,因此你總是覆蓋它。這不是有效的,並且可能容易出錯(如果你不想要最後的值)。 –
在問題#2中,您是否嘗試閱讀關於Aggregate的文檔? –
@TimSchmelter,你能解釋一下嗎? **沒有打破它,** – DON