首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果在确定的时间间隔内发生多个DateTimes,如何进行比较?

如果在确定的时间间隔内发生多个DateTimes,如何进行比较?
EN

Stack Overflow用户
提问于 2013-01-25 23:16:09
回答 1查看 275关注 0票数 0

我正在处理C#中的对象列表,每个对象都包含一个DateTime属性,我需要知道其中的n个对象是否在一个小时内发生。

我需要比较每一个对象吗?有更快的路吗?我不知道,这能和Linq一起做吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-25 23:20:06

你可以使用Where+Count

代码语言:javascript
运行
复制
// for example today between 12 and 13 o'clock
DateTime startHour = DateTime.ToDay.AddHours(12)
DateTime endHour = startHour.AddHours(1);
var inHour = collection.Where(o => o.DateTimeProperty >= startHour 
                                && o.DateTimeProperty <= endHour);
int count = inHour.Count();

当然,这与一个简单的循环是一样的。但这就是你要走的路。

您也可以使用GroupBy,但我不明白您为什么需要它。

代码语言:javascript
运行
复制
var hourGroup = collection
   .GroupBy(o => o.DateTimeProperty.AddMinutes((-1) * o.DateTimeProperty.Minute))
   .FirstOrDefault(g => g.Key == startHour);
if(hourGroup != null)
{
    int count = hourGroup.Count();
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14531833

复制
相关文章

相似问题

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