Я использую Linq для коллекции в памяти вместо EF, но вы должны легко это адаптировать.
private static void LinqExample()
{
var a = new object[]
{
new object[] {"a", DateTime.Parse(" 2011-01-02 12:31:10")},
new object[] {"b", DateTime.Parse(" 2011-01-02 12:31:15")},
new object[] {"c", DateTime.Parse(" 2011-01-02 12:31:59")},
new object[] {"d", DateTime.Parse(" 2011-01-02 12:32:01")},
new object[] {"e", DateTime.Parse(" 2011-01-02 12:32:30")},
new object[] {"f", DateTime.Parse(" 2011-01-02 12:33:10")},
};
var result = from pair in a
let msg = (string) ((object[]) pair)[0]
let date = (DateTime) ((object[]) pair)[1]
group new {date, msg} by new {date.Year, date.Month, date.Day, date.Hour, date.Minute}
into dateGroup
select dateGroup.OrderBy(dg => dg.date).Last();
foreach (var res in result)
{
Console.WriteLine(res.msg);
}
}