Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用linq在一行中获得最大+最小值_C#_Linq_Entity Framework - Fatal编程技术网

C# 使用linq在一行中获得最大+最小值

C# 使用linq在一行中获得最大+最小值,c#,linq,entity-framework,C#,Linq,Entity Framework,如何更改此方法,使其只在一行中使用Maxt.StartTime和Mint.StartTime,如下所示 public IQueryable<Timetable> GetTimetables() { return from t in _entities.Timetables select t; } /我不知道这是否适用于实体框架,但对于linq,它是这样的 public IQueryable<Timetable&

如何更改此方法,使其只在一行中使用Maxt.StartTime和Mint.StartTime,如下所示

 public IQueryable<Timetable> GetTimetables()
    {
        return from t in _entities.Timetables
               select t;
    }

/我不知道这是否适用于实体框架,但对于linq,它是这样的

 public IQueryable<Timetable> GetTimetables()
    {
        return from t in _entities.Timetables
               select new {maxt = Max(t.StartTime), mint = Min(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为空时,这会变得相当复杂。

似乎存在一些语法问题。她忘记了t=>,就像t=>t.StartTime一样。请参见t=>用于lambda,这类似于GetTimeTables。Selectt=>new{maxt=maxt.StartTime,mint=mint.StartTime}Max和Min都需要一个表达式。见我贴的链接,Omu。