Linqify this: Aggregate a subset of a list

c#, linq

Solution

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.

Problem

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?

Original source