首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取最新项和最新项之前的项

获取最新项和最新项之前的项
EN

Stack Overflow用户
提问于 2010-03-05 00:14:20
回答 3查看 144关注 0票数 1

我有一个包含许多周年纪念的表:日期+姓名。

我想和Linq一起展示下一个周年纪念和下一个周年纪念。

如何构建查询?我用EF谢谢约翰

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-03-05 00:17:06

只需按日期排序,然后使用.Take(n)功能

票数 1
EN

Stack Overflow用户

发布于 2010-03-05 00:23:25

示例中包含一些对象列表,假设您希望按日期排序,然后按名称排序:

代码语言:javascript
复制
List<Anniversaries> annivDates = GetAnnivDates();
List<Anniversaries> recentAnniv = annivDates.OrderBy(d => d.Date).ThenBy(d => d.Name).Take(2).ToList();
票数 1
EN

Stack Overflow用户

发布于 2010-03-05 01:13:01

如果周年纪念存储在常规的DateTime结构中,它们可能设置了“错误”的年份(即结婚或出生年份)。我建议编写一个函数来计算周年纪念日的下一个日期(基于当天),如下所示:

代码语言:javascript
复制
static DateTime CalcNext(DateTime anniversary) {
  DateTime newDate = new DateTime(DateTime.Now.Year, anniversary.Month, anniversary.Day);
  if (newDate < DateTime.Now.Date)
    newDate = newDate.AddYear(1);
  return newDate;
}

然后,继续对日期进行排序,并获取前两个值,如其他帖子中所述:

代码语言:javascript
复制
(from e in anniversaries orderby CalcNext(e.Date) select e).Take(2)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2380794

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档