How do I find the average salary for each department?
var employees = new List<Employee>
{
new Employee {Name = "Tom", Age = 32,Department = "Design",Salary=120000},
new Employee {Name = "John", Age = 22,Department = "UI",Salary=86000},
new Employee {Name = "Sandra", Age = 36,Department = "UI",Salary=83000},
new Employee {Name = "Julie", Age = 54,Department = "Javascript",Salary=80000},
new Employee {Name = "Samantha", Age = 21,Department = "Design",Salary=125000}
};
var massagedEmployees = employees.GroupBy(e => e.Department).Select(g=>g.??????
Run Code Online (Sandbox Code Playgroud)
In SQL I would do something like
select Department,avg(salary) from Employees group by Department
Run Code Online (Sandbox Code Playgroud)
var massagedEmployees = employees.GroupBy(e => e.Department)
.Select(g=>g.Average(x=>x.Salary));
Run Code Online (Sandbox Code Playgroud)
你应该包括Department key这样的:
var massagedEmployees = employees.GroupBy(e => e.Department)
.Select(g=>
new {
Department = g.Key,
SalaryAvg = g.Average(x=>x.Salary)
});
Run Code Online (Sandbox Code Playgroud)
您可以使用:
var massagedEmployees = employees.GroupBy(e => e.Department)
.Select(g => new { Department = g.Key, Avg = g.Average(e => e.Salary) } );
Run Code Online (Sandbox Code Playgroud)