Найти максимальное и минимальное значение DateTime в группе Linq
Я пытаюсь найти максимум и минDateTime
с из CSV импорта.
У меня есть это, чтобы импортировать данные из временногоDataTable
:
var tsHead = from h in dt.AsEnumerable()
select new
{
Index = h.Field<string>("INDEX"),
TimeSheetCategory = h.Field<string>("FN"),
Date = DdateConvert(h.Field<string>("Date")),
EmployeeNo = h.Field<string>("EMPLOYEE"),
Factory = h.Field<string>("FACTORY"),
StartTime = DdateConvert(h.Field<string>("START_TIME")), //min
FinishTime = DdateConvert(h.Field<string>("FINISH_TIME")), //max
};
Который работает отлично. Затем я хочу сгруппировать данные и показать время начала и время окончания, которые являются мин / макс соответствующих полей.
Пока у меня есть это:
var tsHeadg = from h in tsHead
group h by h.Index into g //Pull out the unique indexes
let f = g.FirstOrDefault() where f != null
select new
{
f.Index,
f.TimeSheetCategory,
f.Date,
f.EmployeeNo,
f.Factory,
g.Min(c => c).StartTime, //Min starttime should be timesheet start time
g.Max(c => c).FinishTime, //Max finishtime should be timesheet finish time
};
С мыслью, чтоg.Min
а такжеg.Max
дал бы мне самое низкое и самое высокоеDateTime
для каждого расписания (сгруппированы по индексу)
Это не работает, однако ... Каков наилучший способ найти самое высокое и самое низкое значение DateTimes в группе?