Как написать «group by» + «sum» всего в одном предложении? - PullRequest
0 голосов
/ 09 июня 2019

У меня есть примерные данные

IEnumerable<Employee> ie;

Где Employee содержит «Имя, зарплата, Department_id»

Я могу использовать 2 предложения для группировки по идентификатору отдела и их «Sum»каждая группа в цикле for, как показано ниже:

        var group3 = ie.GroupBy(x => x.Department_id);
        foreach (var g in group3)
        {
            Console.WriteLine(g.Sum(x=>x.Salary));
        }

Да, это работает, но можно ли упростить мой код, я имею в виду, как избавиться от цикла foreach для вычисления моего Sum () просто вмой оператор linq и напишите его как:

var group3 = from e in ie group e by e.Department_id xxxxxxxxx Sum xxxxx

Как написать это заявление?Спасибо.

1 Ответ

3 голосов
/ 09 июня 2019
var results =  ie.GroupBy(x => x.Department_id).Select(g => g.Sum(x => x.Salary));

 foreach (var item in result)
 {
     Console.WriteLine(result);
 }

OR

ie.GroupBy(x => x.Department_id).Select(g => g.Sum(x => x.Salary))
            .ToList().ForEach(x => Console.WriteLine(x));
...