假设我有一个列表或项目数组,我想总结一下列表中的项目的子集。 (就我而言,它恰好是一个连续的子集)。
这是老式的方式:
int sum = 0;
for(int i = startIndex; i <= stopIndex; i++)
sum += myList[i].TheValue;
return sum;
获得该代码的最佳方法是什么?
答案 0 :(得分:6)
myList.Skip(startIndex).Take(stopIndex - startIndex + 1).Sum(x => x.TheValue);
如果我做了很多这样的事情,我会定义一个覆盖TakeRange
和Skip
的帮助Take
,这样我就不会一个接一个它