[英]Get max + min in one line with linq
如何更改此方法,使其僅在一行中使用它就返回Max(t.StartTime)和Min(t.StartTime),如下所示?
public IQueryable<Timetable> GetTimetables()
{
return from t in _entities.Timetables
select t;
}
/米
離開我的頭頂(閱讀:未經測試),並假設StartTime是不可為空的:
public class TimetableWithMaxMin
{
public Timetable Timetable { get; set; }
public DateTime Max { get; set; }
public DateTime Min { get; set; }
}
public IQueryable<TimetableWithMaxMin> GetTimetables()
{
return from t in _entities.Timetables
select new TimetableWithMaxMin
{
Timetable = t,
Max = _entities.Timetables.Max(t => t.StartTime),
Min = _entities.Timetables.Min(t => t.StartTime)
};
}
當StartTime可為空時,這變得相當復雜。
我不知道這是否適用於實體框架,但是用linq就像這樣
public IQueryable<Timetable> GetTimetables()
{
return from t in _entities.Timetables
select new {maxt = Max(t.StartTime), mint = Min(t.StartTime)};
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.