这个问题可能听起来非常令人困惑,但很难描述我想做什么。基本上,我有一个DateTime
对象列表,我想创建一个新列表,其中包含列表中的对象,这些对象代表列表中表示的每个日期的最新时间。例如,假设我有一个包含这些DateTime
s的列表:
我希望我的结果列表包含以下内容:
我知道我可以使用LINQ来做到这一点。我只是很难把想法包围在发生的事情中。我想我必须从IEnumerable<IEnumerable<DateTime>>
中选择内部IEnumerable
是DateTime
的列表,这些列表都具有相同的日期,然后我想通过降序排序并选择第一个。
我很失落......
答案 0 :(得分:9)
试试这个:
var dates = list.GroupBy(dt => dt.Date).Select(g => g.Max());
答案 1 :(得分:1)
你可以做这样的事情
var groups = dateList.GroupBy(date => date.Date)
.Select( grp => grp.Max( date => date.TimeOfDay));