У меня есть объект со следующими полями GUID TaskId, GUID SubTaskId, DateTime Timestamp
TaskId может быть один-ко-многим с SubTaskId.Это почти как составной ключ почти.
Я хотел бы написать выражение или выражения, приводящие к появлению самого нового среди каждого TaskId, т.е.
TaskId SubTaskId Timestamp
1 A 2010-11-22 15: 48: 49.727
1 B 2010-11-22 16: 24: 51.117
2 C 2010-11-15 11: 49: 05.717
2 D 2010-11-15 14: 02: 11.467
Результатом будет последовательность, содержащая только:
TaskId SubTaskId Timestamp
1 B 2010-11-22 16: 24: 51.117
2 D 2010-11-15 14: 02: 11.467
Это выражение прекрасно работает для отображения всех TaskId и TimeStamps
var q1 =
from req in myEntity
orderby req.TaskId
select new
{
req.TaskId,
req.SubTaskId,
req.Timestamp
};
но я бы хотел показывать только последнюю метку времени для каждого TaskId.Все мои попытки добавить макс в выражение провалились.Пост (/1722088/kak-vy-nahodite-gruppovoi-maksimum-v-linq) показался близким, но я не смог перевести его во что-то работающее. Возможно, нужен foreach
.