在linq where-in子句中选择匹配对象两次
本文关键字:对象 两次 where-in linq 子句 选择 | 更新日期: 2023-09-27 18:14:25
我知道我们可以使用Contains
方法在linq查询中生成where
子句,如下所示:
List<long> objectIDs = new List<long>() { 1, 1, 2 };
var objects = dbcontext.Where(o => objectIDs.Contains(o.ID))
.Select(o => o).ToList();
我的问题是,如果ID
在where
条件下出现两次,我如何能够两次选择匹配对象?
听起来像是要为每个匹配选择对象的单独副本。
Select()
只能返回一个对象;你需要SelectMany()
:
list.SelectMany(p => Enumerable.Repeat(p, objectIDs.Count(id => id == p.ID)))