分组学生平均分数

时间:2013-04-21 19:53:36

标签: c#

我有以下学生名单

public class Student
{
    public string First { get; set; }
    public string Last { get; set; }
    public int ID { get; set; }
    public List<int> Scores;
}

List<Student> students = new List<Student>()
     {
         new Student { First = "a", Last = "aa", ID = 1, Scores = new List<int>() { 97, 92, 81, 60 } },
         new Student { First = "b", Last = "bb", ID = 2, Scores = new List<int>() { 75, 84, 91, 39 } },
         new Student { First = "c", Last = "cc", ID = 3, Scores = new List<int>() { 88, 94, 65, 91 } },

     };

如何根据学生的成绩对学生进行分组?

1 个答案:

答案 0 :(得分:2)

var groups = students.GroupBy(s => s.Scores.Average());

这会为您提供一个元素列表,其中键值等于平均值​​,值等于具有该平均值的学生:

foreach(var g in groups){
    Console.WriteLine("Average: "+ g.Key);
    foreach(var s in g){
        Console.WriteLine(s.ID +":"+ s.First +" "+ s.Last);
    }
}