将对象数组转换为对象字典
我有一个事件数组:
IEnumerable<CalendarEvent> events
我想将其转换为字典,所以我尝试了这个:
Dictionary<string, CalendarEvent> dict = events.ToDictionary(r => r.Date.ToString("MMM dd, yyyy"));
问题是我在一个日期有多个事件,所以我需要一种方法将其转换为 a
Dictionary<string, List<CalendarEvent>>
以支持有多个事件的日子
i have an array of events:
IEnumerable<CalendarEvent> events
i want to convert this to a dictionary so i tried this:
Dictionary<string, CalendarEvent> dict = events.ToDictionary(r => r.Date.ToString("MMM dd, yyyy"));
the issue is that i have multiple events on a single date so i need a way to convert this to a
Dictionary<string, List<CalendarEvent>>
to support the days which have multiple events
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以使用 ToLookup 代替。
当您为查找建立索引时,您会获得所有匹配结果的枚举,因此在该示例中
lookup["Sep 04, 2010"]
将为您提供一个IEnumerable
。如果没有结果匹配,您将得到一个空的可枚举值,而不是 KeyNotFoundException。您还可以使用 GroupBy 然后使用 ToDictionary:
You can use ToLookup instead.
When you index a lookup, you get an enumerable of all matching results, so in that example
lookup["Sep 04, 2010"]
would give you anIEnumerable<CalendarEvent>
. If no results match, you will get an empty enumerable rather than a KeyNotFoundException.You could also use GroupBy and then ToDictionary: