我有以下类的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>()
?
答案 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())