问题
foreach (Item item in Items)
{
Cost = Cost +
item.Costs.OrderByDescending(x => x.ID)
.FirstOrDefault()
.Cost;
}
The above LINQ returns 150.
I have 4 items(1,2,3,4) with the respective Cost. I need to rewrite the above LINQ to get the correct total cost of 210.
ID--ItemID-- Cost
11 -- 1 -- 10
21 -- 2 -- 20
31 -- 2 -- 30
41 -- 3 -- 40
51 -- 3 -- 50
61 -- 4 -- 60
Can anyone please provide the modified LINQ to do so?
Modifying the LINQ as below doesnt give me the expected result --
foreach (Item item in Items)
{
Cost = Cost +
item.Costs.Sum(r => r.Cost);
}
回答1:
I am not sure why you are messing it up by looping first and writing a query again in the loop. Do it either with a foreach
loop or a LINQ query like this:-
int result = items.Sum(x => x.Cost);
It will give you 210 as output.
来源:https://stackoverflow.com/questions/29325589/calculate-sum-using-linq