In IEnumerable<Appointment>, which contains appointments defined as:
class Appointment
{
public string Name { get; set; }
public DateTime LastModified { get; set; }
public bool IsCancelled { get; set; }
}
which in practice may be as follows:
"Jon S" | 25-02-2011 16:14:40 | true
"Jon S" | 25-04-2011 22:15:44 | false
"Marc G" | 15-11-2011 16:09:00 | true
"Marc G" | 21-12-2011 16:11:00 | false
"Marc G" | 20-12-2011 16:24:00 | true
"Eric L" | 13-06-2011 19:10:00 | false
"Reed C" | 13-04-2011 09:10:00 | true
"Reed C" | 13-06-2011 19:10:00 | false
"John G" | 04-01-2011 06:12:00 | true
"Jon S" | 25-03-2011 12:24:42 | true
This collection should be reduced to a collection containing only appointments with the highest LastModified date of each different name .. p>
"Jon S" | 25-04-2011 22:15:44 | false
"Marc G" | 21-12-2011 16:11:00 | false
"Eric L" | 13-06-2011 19:10:00 | false
"Reed C" | 13-06-2011 19:10:00 | false
"John G" | 04-01-2011 06:12:00 | true
I am a little confused how to do this. When I tried:
.GroupBy(n => n.Name)
.Select(d => d.Max(t => t.LastModified));
It seems that they are delivering the correct dates, but they need the whole essence, what am I missing ?.
UPDATE / Remarks: . This is a large collection with about 10,000 unsorted items, delivered by a service that I cannot change. Each individual group has about 20 elements.