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