我知道我们可以使用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();发布于 2013-05-20 10:18:36
听起来你想为每个匹配选择一个单独的对象副本。
Select()只能返回一个对象;您需要SelectMany()
list.SelectMany(p => Enumerable.Repeat(p, objectIDs.Count(id => id == p.ID)))您也可以使用join来更快地完成此操作。
https://stackoverflow.com/questions/16641622
复制相似问题