就像标题所说:
我有DateTime start
和DateTime stop
现在我想将它们与List<DateTime> dates
我只想查看列表dates
是否介于start
和stop
之间
if(dates.all(..... >= start && <= stop)) {
. do something
}
答案 0 :(得分:8)
您问题中的伪代码离您正在寻找的工作代码不远。
使用LINQ的All()方法:
if (dates.All(date => date >= start && date <= stop)) {
// Do something.
}
答案 1 :(得分:4)
对列表进行排序。 检查列表中的第一项是&gt; =开始日期和列表中的最后一项&lt; =结束日期
答案 2 :(得分:2)
使用linq:if(dates.All(d => d >= start && d <= stop))
答案 3 :(得分:2)
使用All
扩展方法和进行比较的lambda表达式:
if (dates.All(d => d >= start && d <= stop)) { ... }
答案 4 :(得分:2)
如果您只想迭代括号中的日期,可以使用以下内容:
foreach (DateTime date in dates.Where(o => o >= start && o <= stop))
{
//Do your thing.
}
答案 5 :(得分:1)
你可以像
一样工作bool allTrue = LstDates.TrueForAll(delegate(DateTime dt) { return dt >= startDate && dt <= endDate; });