Linq:按时间跨度在另一个列表中过滤列表

时间:2014-01-22 18:41:12

标签: c# linq

我有两个对象列表。一个列表具有值和日期时间。另一个列表有开始和结束时间。我想构建一个新列表,其中包含第一个列表中位于第二个列表的开始时间和结束时间加上8个小时的任何对象之间的对象。

我想我可以通过时间跨度遍历列表并使用linq拉出第一个列表中的相关项,检查重复项以及新列表是否包含值添加它。这样可行,但似乎应该有一种方法只需使用Linq。

有没有人知道如何用linq做到这一点?

1 个答案:

答案 0 :(得分:2)

这样的东西?

values.Where(v => times.Any(t => v.DateTime >= t.StartTime 
                              && v.DateTime <= t.EndTime)
            )