List<Employee> list = new List<Employee>
{
new Employee { Id = 1, Name = "jerry", Age = 28, Gender = true, Salary = 5000 },
new Employee { Id = 2, Name = "jim", Age = 33, Gender = true, Salary = 3000 },
new Employee { Id = 3, Name = "lily", Age = 35, Gender = false, Salary = 9000 },
new Employee { Id = 4, Name = "lucy", Age = 16, Gender = false, Salary = 2000 },
new Employee { Id = 5, Name = "kimi", Age = 25, Gender = true, Salary = 1000 },
new Employee { Id = 6, Name = "nancy", Age = 35, Gender = false, Salary = 8000 },
new Employee { Id = 7, Name = "zack", Age = 35, Gender = true, Salary = 8500 },
new Employee { Id = 8, Name = "jack", Age = 33, Gender = true, Salary = 8000 }
};
IEnumerable<IGrouping<int, Employee>> employees = list.OrderBy(z=>z.Age).GroupBy(x => x.Age);
foreach (IGrouping<int,Employee> item in employees)
{
Console.WriteLine($"年龄:{item.Key}--平均工资:{item.Average(y=>y.Salary)}");//item.Key为分组关键字??
foreach (Employee employee in item)
{
string G = employee.Gender ? "男" : "女";
Console.WriteLine($"Id:{employee.Id} -- 姓名:{employee.Name} -- 年龄:{employee.Age} -- 性别:{G} -- 工资:{employee.Salary}");
}
Console.WriteLine("----------------");
}
.GroupBy(x => x.Age) 按年龄分组,item.key 获取分组的关键字