Linq和条件总和

时间:2010-06-05 01:22:04

标签: linq

我有一个类和一个列表如下:

class C1
{
    int RecType ...;
    decimal Income ...;
    decimal Outcome ...;
}

List<C1> myList ...;

列表中加载了几条记录,它们在RecType中有各种值 我想要的是计算收入和结果的总数,但仅限于RecType的某个值

这是我需要获取的伪代码

totalIncome = myList.Sum(Income).Where(RecType==1);

如何使用linq完成此操作?

谢谢

2 个答案:

答案 0 :(得分:29)

totalIncome = myList.Sum(c=>
    (c.RecType==1 ? c.Income : 0));

答案 1 :(得分:26)

totalIncome = myList.Where(x => x.RecType == 1).Select(x => x.Income).Sum();

首先过滤记录类型(Where);然后你通过Select变换每个对象的Income;最后你Sum了。

或稍微简洁的版本:

totalIncome = myList.Where(x => x.RecType == 1).Sum(x => x.Income);