假设我有这两个实体:
- Document,其中包含一个 DateTime 属性(称为Date)。
- Period,它包含两个代表时间段的DateTime 属性(称为DateFrom和DateTo )。
然后,考虑这个表达式,其中d表示Document并且p表示Period,它用于过滤Document集合以仅返回属于给定Period的那些:
d => d.Date >= p.DateFrom && d.Date <= p.DateTo
问题是,给定一个 Period 实体的集合,我如何构建一个 lambda 表达式,它表示多个表达式的串联,如上述表达式,所以它给出:
d =>
(d.Date >= p1.DateFrom && d.Date <= p1.DateTo)
&& (d.Date >= p2.DateFrom && d.Date <= p2.DateTo)
&& (d.Date >= p3.DateFrom && d.Date <= p3.DateTo)
&& ...
我希望结果是一个lambda 表达式,我可以在过滤我的 Document 集合之前进一步结合其他条件。