我正在尝试编写 linq lambda select 以从数据库中获取所有记录,这些记录的数字位于其他列表或数据库表的任何特定间隔中。假设我有一张表“SOURCE”+------+------+-------+------+------+| Col1 | Col2 | reqNr | col5 | col6 |+------+------+-------+------+------+| x | x | 9 | x | x || x | x | 14 | x | x || x | x | 19 | x | x || x | x | 24 | x | x |+------+------+-------+------+------+
我已经选择了表“INTERVALS”+------+----+| from | to |+------+----+| 1 | 3 || 5 | 10 || 15 | 30 |+------+----+
到 C# 中的对象列表“intervalList”。
如何在 linq sql 语句中写入“.Where()”部分以从“SOURCE”中获取“ReqNr”列值落在“intervalList”列表中的任何间隔内的所有记录。
例如:.where(w => intervalList.any(w.ReqNr > intervalList.from && w.ReqNr < intervalList.to))
最佳答案
你可以这样做:
var result = iRec
.Where(r => intervalList.Any(i => i.From <= r.reqNr && i.To >= r.reqNr))
.ToList();
你可以检查它 here 。
关于c# - Linq 从另一个间隔列表中选择任何间隔中的所有数字,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44673095/