使用重载 Where 允许您根据索引进行过滤:
Where
var result = listCalculations .Where((x, index) => index % globalReviewPeriod == 0) .Sum(...); // Put some aggregation here.
从文档中,lambda函数使用如下:
谓语 键入:System.Func 用于测试条件的每个源元素的函数;函数的第二个参数表示源元素的索引。
谓语
键入:System.Func
用于测试条件的每个源元素的函数;函数的第二个参数表示源元素的索引。
请注意,上面的代码将始终包含第一个项目,因为它具有索引0,可以被每个数字整除。你可能希望使用 (index + 1) 代替 index 如果要使用基于1的索引,其中第一个元素具有索引1。
(index + 1)
index
var result = listCalculations .Where((x, index) => (index + 1) % globalReviewPeriod == 0) .Sum(...); // Put some aggregation here.