Reputation: 21751
Suppose I have a list or array of items, and I want to sum a subset of the items in the list. (in my case, it happens to always be a sequential subset).
Here's the old-fashioned way:
int sum = 0;
for(int i = startIndex; i <= stopIndex; i++)
sum += myList[i].TheValue;
return sum;
What's the best way to linqify that code?
Upvotes: 3
Views: 381
Reputation: 71985
myList.Skip(startIndex).Take(stopIndex - startIndex + 1).Sum(x => x.TheValue);
If I were doing this sort of thing a lot, I'd define a helper TakeRange
that covered the Skip
and Take
so that I didn't off-by-one it.
Upvotes: 6