LINQ查询有一个小问题。
基本上,我有两个列表,其中填充了日期。
List<DateTime> start = GetListOfStartDates();
List<DateTime> end = GetListOfEndDates();
DateTime date = new DateTime(2012, 1, 1);
我如何执行LINQ查询,基本上将日期与开始日期和结束日期进行比较:
(start <= date && end >= date)
显然我知道它们是列表,所以这行不通,如何将单个日期与两个日期列表进行比较?基本上在一组日期之间进行。
起始索引将始终匹配结束索引,
start[7]
将始终匹配end[7]
。我正在尝试将mysql between
-查询转换为LINQ。因此,我正在寻找给定的“日期”是否在任何起始-结束对之内。 最佳答案
假设我正确地解释了您的问题(请参见上面的评论),我认为您最好将其作为for循环而不是LINQ查询。我会做这样的事情:
public bool DateFallsInRange(IEnumerable<DateTime> startDates, IEnumerable<DateTime> endDates)
{
for (int index = 0; index < startDates.Count; index++)
{
if ((startDates[index] <= compareDate) && (compareDate <= endDates[index])) return true;
}
return false;
}