Допустим, у вас есть это:
class LogEntry
{
int ID;
int UserName;
datetime TimeStamp;
string Details;
}
, и вы извлекли такой набор данных:
ID Username Timestamp Details
1 foo 1/01/2010 Account created
2 zip 2/02/2010 Account created
3 bar 2/02/2010 Account created
4 sandwich 3/03/2010 Account created
5 bar 5/05/2010 Stole food
6 foo 5/05/2010 Can't find food
7 sandwich 8/08/2010 Donated food
8 sandwich 9/09/2010 Ate more food
9 foo 9/09/2010 Ate food
10 bar 11/11/2010 Can't find food
Я хочу выбрать только последнюю отдельную запись (т. Е. Сортировать по убыванию отметки времени) для каждой пользователь (то есть GroupBy Username). Я могу разобраться в Distinct и GroupBy, но объединение их в одном операторе, который также возвращает неотличимые / сгруппированные поля / свойства И сортирует по метке времени, вызывает у меня головную боль.
Что должно получиться в приведенном выше примере. is:
ID Username Timestamp Details
2 zip 2/02/2010 Account created
8 sandwich 9/09/2010 Ate more food
9 foo 9/09/2010 Ate food
10 bar 11/11/2010 Can't find food
Я не хочу «жульничать» и прибегать к длинному способу делать это, когда я уверен, что это можно сделать с помощью одного оператора LINQ.