【发布时间】:2018-05-29 13:23:12
【问题描述】:
我有一个日期列表,我想检索每年的第一个现有项目。问题是它并不总是包含一月一日的项目。下面的代码暂时获取所有内容,但如果缺少一天,则不会显示一整年。
foreach (var index in pModel.IndexData)
{
if (index.Date.ConvertToDateTime().Day == 02 && index.Date.ConvertToDateTime().Month == 01)
{
yearlyIndex.Add(index);
}
}
日期外观示例。
- 2000-01-01
- 2000-02-03
- 2001-03-11...等
我怎样才能总是得到正确的项目?在这个例子中,我总是想得到第 1 行和第 3 行。我可以用一堆 if 语句创建一个循环并添加天数月和年,但我想用 linq 或 lambda 来处理这个问题。
【问题讨论】:
-
听起来像
orderby日期和distinct年份。 -
按日期排序。然后按年分组。然后只需选择每个组中的第一项。