List of objects to Dictionary with distinct keys and selected values

I have a List of objects of following class:

class Entry
{
    public ulong ID {get; set;}
    public DateTime Time {get; set;}
}

The list contains several object per ID value, each with different DateTime.

Can I use Linq to convert this List<Entry> to a Dictionary<ulong, DateTime> where the key is the ID and the value is Min<DateTime>() of the DateTimes of that ID?

Jon Skeet
people
quotationmark

Sounds like you want to group by ID and then convert to a dictionary, so that you end up with one dictionary entry per ID:

var dictionary = entries.GroupBy(x => x.ID)
                        .ToDictionary(g => g.Key,
                                      // Find the earliest time for each group
                                      g => g.Min(x => x.Time));

Or:

                         // Group by ID, with each value being the time
var dictionary = entries.GroupBy(x => x.ID, x => x.Time)
                         // Find the earliest value in each group
                        .ToDictionary(g => g.Key, g => g.Min())

people

See more on this question at Stackoverflow