首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在linq where-in子句中选择匹配对象两次

在linq where-in子句中选择匹配对象两次
EN

Stack Overflow用户
提问于 2013-05-20 10:15:09
回答 1查看 1.1K关注 0票数 1

我知道我们可以使用Contains方法在linq查询中生成where子句,如下所示:

代码语言:javascript
复制
List<long> objectIDs = new List<long>() { 1, 1, 2 };
var objects = dbcontext.Where(o => objectIDs.Contains(o.ID))
                     .Select(o => o).ToList();
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-20 10:18:36

听起来你想为每个匹配选择一个单独的对象副本。

Select()只能返回一个对象;您需要SelectMany()

代码语言:javascript
复制
list.SelectMany(p => Enumerable.Repeat(p, objectIDs.Count(id => id == p.ID)))

您也可以使用join来更快地完成此操作。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16641622

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档