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

Linq: filtering a list by time spans in another list

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

我在想,我可以用时间跨度遍历列表,然后使用Linq提取第一个列表中的相关项,检查是否有重复项,以及新列表是否不包含值并添加它。这是可行的,但似乎应该有一种方法可以通过使用LINQ来实现这一点。

有人知道如何用LINQ来实现这一点吗?


像这样?

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