我在一个对象中提交了一个日期。我想检查所有日期是否来自同一个月[月份可以是任何东西]。
以下是检查即将到来的日期的示例是从当月。
@Model.Events.Where(d =>
System.Convert.ToDateTime(d.Eventdate).Month == System.Convert.ToInt32(month))
答案 0 :(得分:6)
使用Enumerable.All()
- 它会验证序列中的所有项是否满足条件:
@Model.Events.All(d =>
Convert.ToDateTime(d.Eventdate).Month == Convert.ToInt32(month))
答案 1 :(得分:2)
你可以使用类似的东西:
bool allSameMonth = @Model.Events
.Select(x => x.EventDate.Month)
.Distinct()
.Count() < 2;
(我冒昧地假设您要将Eventdate
模型属性从string
属性更改为DateTime
属性,并将{{1}大写你真的不希望在整个地方使用字符串。尽可能早地转换为D
,然后只在你需要的地方转换回字符串。)< / p>
此代码并不关心它是哪个月 - 只是少于2个不同的月份。 (这意味着“没有事件”也很重要。你需要考虑如何处理它。)
答案 2 :(得分:0)
@Model.Events.Where(d =>
d.Eventdate.Month == DateTime.Now.Month)