C# 将对象数组转换为对象字典
我有一系列事件:C# 将对象数组转换为对象字典,c#,collections,dictionary,C#,Collections,Dictionary,我有一系列事件: IEnumerable<CalendarEvent> events IEnumerable事件 我想将其转换为字典,因此我尝试了以下方法: Dictionary<string, CalendarEvent> dict = events.ToDictionary(r => r.Date.ToString("MMM dd, yyyy")); Dictionary dict=events.ToDictionary(r=>r.Date.ToSt
IEnumerable<CalendarEvent> events
IEnumerable事件
我想将其转换为字典,因此我尝试了以下方法:
Dictionary<string, CalendarEvent> dict = events.ToDictionary(r => r.Date.ToString("MMM dd, yyyy"));
Dictionary dict=events.ToDictionary(r=>r.Date.ToString(“MMM-dd,yyyy”);
问题是我在一个日期有多个事件,所以我需要一种方法将其转换为
Dictionary<string, List<CalendarEvent>>
字典
要支持具有多个事件的日期,可以改用
var lookup = events.ToLookup(r => r.Date.ToString("MMM dd, yyyy"));
为查找编制索引时,会得到所有匹配结果的可枚举结果,因此在该示例中,lookup[“Sep 04,2010”]
将为您提供一个IEnumerable
。如果没有匹配的结果,您将得到一个空的枚举,而不是KeyNotFoundException
您还可以使用,然后使用:
Dictionary<string, List<CalendarEvent>> dict = events
.GroupBy(r => r.Date.ToString("MMM dd, yyyy"))
.ToDictionary(group => group.Key, group => group.ToList());
Dictionary dict=事件
.GroupBy(r=>r.Date.ToString(“MMM dd,yyyy”))
.ToDictionary(group=>group.Key,group=>group.ToList());