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

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

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

List<C1> myList ...;

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

Вот псевдо код того, что я должен получить

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

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

Спасибо

17
задан bzamfir 5 June 2010 в 01:22
поделиться

2 ответа

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

Сначала вы фильтруете по типу записи ( Где ); затем вы трансформируете с помощью Выбирая , добавляя Доход каждого объекта; и, наконец, вы Суммируете все это.

Или, если кратко:

totalIncome = myList.Where(x => x.RecType == 1).Sum(x => x.Income);
27
ответ дан 30 November 2019 в 10:21
поделиться
totalIncome = myList.Sum(c=>
    (c.RecType==1 ? c.Income : 0));
31
ответ дан 30 November 2019 в 10:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: