Linq и условная сумма

У меня есть класс и список, как показано ниже:

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

List<C1> myList ...;

Список загружен несколькими записями, и они имеют различные значения в RecType Я хочу рассчитать общую сумму по доходам и результатам, но только для определенного значения RecType

Здесь псевдо-код того, что мне нужно получить

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

Как я могу выполнить это с помощью linq?

Спасибо

Ответы

Ответ 1

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);

Ответ 2

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