【发布时间】:2017-06-13 07:29:45
【问题描述】:
我只想计算订阅结束日期在下个月内的用户:
int Count = oUsers
.Where(x =>
0 < x.SubscriptionEnddate.Value.Subtract(DateTime.Now).Days < 30)
.Count();
但它不起作用。
我想做的是0 。
【问题讨论】:
-
为什么要排除
&&- 它是迄今为止最易读的解决方案? -
听起来像是 x y 问题。你真正想达到什么目标? meta.stackexchange.com/questions/66377/what-is-the-xy-problem/…
-
我会完全重构它,预先将边界计算为局部变量,然后使用
int count = oUsers.Count(x => x.SubscriptionEnddate >= lowerBound && x.SubscriptionEnddate < upperBound); -
我还敦促您考虑时区。您的数据存储在哪个时区?它与您使用
DateTime.Now的机器相同吗?你确定不想要DateTime.UtcNow或类似的吗? -
不带 && 运算符:
!(Value <= 0 || 30 <= Value)按要求解决