代码之家  ›  专栏  ›  技术社区  ›  JMarsch

Linqify this:聚合列表的子集

  •  3
  • JMarsch  · 技术社区  · 15 年前

    假设我有一个项目列表或数组,我想对列表中项目的子集求和。(在我的例子中,它总是一个连续的子集)。

    这是老式的方法:

    
    int sum = 0;
    for(int i = startIndex; i <= stopIndex; i++)
      sum += myList[i].TheValue;
    return sum;
    
    

    什么是最好的方法来实现代码的Linqify?

    1 回复  |  直到 15 年前
        1
  •  6
  •   mqp    15 年前
    myList.Skip(startIndex).Take(stopIndex - startIndex + 1).Sum(x => x.TheValue);
    

    如果我经常做这种事情,我会定义一个助手 TakeRange 覆盖了 Skip Take 所以我没有一个人离开。