[英]LINQ find max/min value with corresponding time fields
我有一個氣象站的數據記錄表,我從中查詢結果到 WPF ListBox
。
表結構為:
我有一個工作正常的查詢:
var q = from c in db.Apr11log
group c by c.LogDate into g
orderby g.Key
select new
{
LogDate = g.Key,
MaxTemp = g.Max(c => c.Temp),
MinTemp = g.Min(c => c.Temp),
Rain = g.Max(c => c.Rain_today),
};
但是我正在嘗試獲取 Max Temp 和 Min Temp 的相應時間,即
TimeMax = .....
TimeMin = .....
我用谷歌搜索和搜索,但沒有發現任何有用的東西。
var q = from c in db.Apr11log
group c by c.LogDate into g
orderby g.Key
select new
{
LogDate = g.Key,
MaxRow = g.OrderByDescending(c => c.Temp).Select(c => new { c.LogDate, c.Temp }).First(),
MinRow = g.OrderBy(c => c.Temp).Select(c => new { c.LogDate, c.Temp }).First(),
Rain = g.Max(c => c.Rain_today),
};
或者
var q = from c in db.Apr11log
group c by c.LogDate into g
orderby g.Key
let maxRow = g.OrderByDescending(c => c.Temp).First()
let minRow = g.OrderBy(c => c.Temp).First()
select new
{
LogDate = g.Key,
MaxTemp = maxRow.Temp,
MaxTempDate = maxRow.LogDate,
MinTemp = minRow.Temp,
MinTempDate = minRow.LogDate,
Rain = g.Max(c => c.Rain_today),
};
let maxTemp = c.Max(c=>c.Temp)
let minTemp = c.Min(c=>c.Temp)
select new {
LogDate = g.Key,
MaxTemp = maxTemp,
MinTemp = minTemp,
MaxTime = g.FirstOrDefault(c=>c.Temp = maxTemp).Time,
MinTime = g.FirstOrDefault(c => c.Temp = minTemp).Time,
Rain = g.Max(c => c.Rain_today),
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.