C# 使用Linq每小时分组并获得每小时平均值

C# 使用Linq每小时分组并获得每小时平均值,c#,linq,highcharts,C#,Linq,Highcharts,我似乎不知道该怎么做。 我有一个对象,它具有DateTime属性和int 我想将DateTime按小时分组,然后将timetake属性平均为每小时 型号 public class ChartModel { public DateTime Date { get; set; } public int TimeTaken { get; set; } } 控制器 public ActionResult PopulateResponseTimeChart() { // selec

我似乎不知道该怎么做。 我有一个对象,它具有
DateTime
属性和
int

我想将
DateTime
按小时分组,然后将
timetake
属性平均为每小时

型号

public class ChartModel
{
    public DateTime Date { get; set; }
    public int TimeTaken { get; set; }
}
控制器

public ActionResult PopulateResponseTimeChart()
{
    // selectedItem is a type of IEnumerable<ChartModel>
    var average = selectedItem.GroupBy(x => x.Date.Date).Select(x => new { Date = x.Key, Average = x.Average(a => a.TimeTaken) });
    var data = average.Select(x => x.Average.ToString(CultureInfo.CurrentUICulture)).ToArray();
    var time = average.Select(x => x.Date).ToArray();

     // Other stuff
 }
public ActionResult PopulateResponseTimeChart()
{
//selectedItem是IEnumerable的一种类型
var average=selectedItem.GroupBy(x=>x.Date.Date).Select(x=>new{Date=x.Key,average=x.average(a=>a.timetake)});
var data=average.Select(x=>x.average.ToString(CultureInfo.CurrentUICulture)).ToArray();
var time=average.Select(x=>x.Date).ToArray();
//其他东西
}
以上这些似乎不起作用<代码>平均值仅包含一个结果,而我希望它是每小时一次的。
这背后的原因是我想在JS图书馆的Highcharts中使用它

你希望它是怎样的?您的代码中没有任何指定每小时分组或类似分组的内容。您按日期分组,然后为每个日期创建一个记录,其中包含当天所有记录的日期和平均时间。正确,我不确定如何执行此操作,这是我的问题。我会编辑我的作业,以确保我的要求是明确的。那么这只是一个按日期和时间分组的问题吗?有多种方法可以实现这一点,包括
…GroupBy(x=>new{x.Date.Date,x.Date.Hour})
我还需要
所用时间
成为每个分组小时的平均值?好吧,这没关系,因为你在组中进行平均。
selectedItems.GroupBy(x => x.Date.Hour)
             .Select(g => new { Hour = g.Key, AverageTimeTaken = g.Average(x => x.TimeTaken) });