【发布时间】:2015-06-08 15:00:20
【问题描述】:
我有一个这样的日期时间集合:
IEnumerable<DateTime?> dates
我想按降序获取不同日期的集合
IEnumerable<DateTime> dtCollection = dates.Where(x => x.HasValue).Distinct().OrderByDescending(x => x).AsEnumerable();
在上面的代码中,我得到了无效转换的异常,并且 distinct 返回不同的(日期+时间)而不是不同的日期。
所以:
- 为什么
Where(x => x.HasValue)没有丢弃所有空值 - 如何修复我的代码以完成任务?
谢谢,
【问题讨论】:
-
@GrantWinney 我想忽略时间我只需要不同的日期
-
对于您的
1,因为没有人回答它:仅仅因为您使用HasValue,您实际上并没有将您的DateTime?转换为DateTime。它只是抓取所有不为空的项目。因此,您需要从这些项目中获取Value,如这些答案所示。
标签: c# .net linq collections lambda