希望能有所帮助。

我正在从数据库中检索以下列表。

Name  AssessNumber Score
John     1            90
John     2            88
John     3            67
Steve    1            98
Steve    2            90


我想要的是按平均分数分组并显示最高评估数(int)

Name   AssessNumber   Score
John   3              81.6
Steve  2              94


数据将存储在List<lbResults>lb = new List<lbResults>()

我该如何实现?

亲切的问候

最佳答案

尝试这个:

var results = data.GroupBy(x => x.Name).Select(x => new
{
    Name = x.Key,
    AssessNumber = x.Max(z => z.AssessNumber),
    Score = x.Average(z => z.Score)
})


您还可以返回原始数据结构(您将其命名为lbResults):

var results = data.GroupBy(x => x.Name).Select(x => new lbResults
{
    Name = x.Key,
    AssessNumber = x.Max(z => z.AssessNumber),
    Score = x.Average(z => z.Score)
})


Fiddle

10-07 20:11