具有不同键和选定值的字典对象列表

时间:2014-08-11 13:47:48

标签: c# linq dictionary

我有以下类的List个对象:

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

该列表包含每个ID值的多个对象,每个对象具有不同的DateTime。

我是否可以使用Linq将此List<Entry>转换为Dictionary<ulong, DateTime>,其中密钥为ID且该ID的日期时间的值为Min<DateTime>()

1 个答案:

答案 0 :(得分:11)

听起来你想要按ID分组,然后转换为字典,这样你最终每个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));

或者:

                         // 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())