c# - 使用 linq 检索平均分数

标签 c# linq

希望得到一点帮助。

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

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

关于c# - 使用 linq 检索平均分数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29630582/

相关文章:

c# - LINQ 和可选参数

c# - 在 XNA 中调整和加载 texture2d

c# - 关闭 Windows 资源管理器的特定实例

c# - 如何将 FirstOrDefault 替换为 RandomOrDefault 之类的 "balance"调用?

c# - LINQ with group_concat - 在一个字段中获取链接的表结果

c# - LINQ 查询对日期范围内的值求和

c# - 创建范围表

c# - 当 WPF 中的文本更改时对 TexBox 强制执行验证

c# - 循环访问 IQueryable 与在 C# 中使用 Reader.Read() 循环访问 Datareader 相同吗

c# - 如何将字符串列排序为 GridView 中的日期时间列