首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我如何用LINQ做一个组,然后用一个平均值

我如何用LINQ做一个组,然后用一个平均值
EN

Stack Overflow用户
提问于 2020-03-13 11:36:58
回答 2查看 61关注 0票数 0

我有一节课:

代码语言:javascript
复制
public class LogViews2
{
    public string DateYYMMDD { get; set; }
    public double CPUSpeed { get; set; }
    public double DBSpeed { get; set; }
}

我正在填写的数据:

代码语言:javascript
复制
var ViewsList2 = ViewsList
    .Select(x => new LogViews2
    {
        DateYYMMDD = x.DateYYMMDD,
        DBSpeed = x.DBSpeed,
        CPUSpeed = x.CPUSpeed
    })
    .ToList();

我不只是使用select,而是按DateYYMMDD进行分组,然后对每个人进行DBSpeed和CPUSpeed的平均排序,并按日期排序。

有人能给我建议吗?我怎么能这么做?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-03-13 11:40:22

这应该是可行的:

代码语言:javascript
复制
var ViewsList2 = ViewsList
    .GroupBy(x => x.DateYYMMDD)
    .OrderBy(g => g.Key)
    .Select(g => new LogViews2
    {
        DateYYMMDD = g.Key,
        DBSpeed = g.Average(gx => gx.DBSpeed),
        CPUSpeed = g.Average(gx => gx.CPUSpeed)
    })
    .ToList();

编辑为per @PavelAnik1000 as :简化的Average调用。

并添加OrderBy

票数 3
EN

Stack Overflow用户

发布于 2020-03-13 11:48:21

试试看,从我的头顶上:

代码语言:javascript
复制
ViewsList.GroupBy(logView => logView.DateYYMMDD)
         .Select(logView => new {
             AverageCPU = logView.Average(log => log.CPUSpeed),
             AverageDBSpeed = logView.Average(log => log.DBSpeed)
         }
);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60669763

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档