【发布时间】:2015-02-10 08:02:43
【问题描述】:
我正在尝试根据列表中每个项目具有的特定值将我的列表分成不同的组,然后在这些组中找到另一个值的平均值。
为了更好地说,我有一个学生列表:
List<Student> students = new List<Student> {
new Student { Name="Bob", Level=Level.Sophomore, GPA=3.2f },
new Student { Name="Cathy", Level=Level.Freshman, GPA=3.6f },
new Student { Name="James", Level=Level.Senior, GPA=3.8f },
new Student { Name="Jessica", Level=Level.Senior, GPA=3.7f },
new Student { Name="Derek", Level=Level.Junior, GPA=2.8f },
new Student { Name="Sam", Level=Level.Junior, GPA=3.1f }
};
我想按他们的班级级别对他们进行分组,因此他们将被分组为新生、大二、大三和大四。然后我希望能够获得这些组的平均 GPA。
因此,这些学生的可能结果集是:
Senior: 3.7
Junior: 2.9
Sophomore: 3.2
Freshman : 3.6
不过,我不太确定如何获得这个结果。我尝试过students.GroupBy(x => x.Level).Average(); 之类的东西,但它不起作用。
对此的任何想法将不胜感激。谢谢!
【问题讨论】: