0
我有两个对象,一个是汽车对象,另一个是我用来记录有多少汽车物体正在轮班并记录这些汽车具有哪些属性。Linq分组和平均值
public class Car
{
public int Id { get; set; }
public bool OnShift { get; set; }
public bool HasExtraBaggageSpace { get; set; }
}
public class Log
{
public DateTime TimeStamp { get; set; }
public int CarId { get; set; }
public bool HasExtraBaggageSpace { get; set; }
}
每五分钟应用程序选择所有的汽车上移和信息写入日志对象,并将其插入到一个列表记录。
经过三周的记录,我现在想返回一个反映最近三周平均值的数字。例如: 在星期四的14:00,我可以期待有多少辆HasExtraBaggageSpace。
公共类对myApp {
public class AverageReturnArgs
{
public int Hour { get; set; }
public int Minute { get; set; }
public int Count { get; set; }
}
public AverageReturnArgs GetAverage(List<Log> logs, DateTime TimeReq)
{
int hour = TimeReq.Hour;
int min = TimeReq.Minute;
var average = logs.GroupBy(grpByHourMin => new
{
hour = grpByHourMin.TimeStamp.Hour,
min = grpByHourMin.TimeStamp.Minute
}).Select(av => new AverageReturnArgs()
{
Hour = av.Key.hour,
Minute = av.Key.min,
Count = av.Average(x => x.HasExtraBaggageSpace)
});
}
}
这产生一个编译错误。 Count = av.Average(x => x.HasExtraBaggageSpace)
任何想法我可以做到这一点?
我的意思是,在14:00每星期四为过去三周没有为n日志。其中一些将有HasExtraBaggageSpace和一些不会。如果周1 = 3周2 = 2周3 = 1平均为2. – Paul 2014-08-31 10:54:33
嗯,我可以,但它很简单,就像在三个不同时间对布尔属性进行计数并求平均值一样。这几乎是它。只是不能获得linq语法。如果原始问题模糊,请联系。 – Paul 2014-08-31 11:30:13
你可以试试我的编辑2?它首先为每个组计算具有* ExtraBaggageSpace *的* Logs *的计数,然后计算所有组的平均值。 – Ndech 2014-08-31 11:46:25