首页
学习
活动
专区
圈层
工具
发布

LINQ
EN

Stack Overflow用户
提问于 2014-03-19 14:28:02
回答 1查看 526关注 0票数 0

我有一个列表,其中包含一些包ID。

代码语言:javascript
复制
List<int> mustHavePackages = GetMustHavePackages();

和一个数据库表

代码语言:javascript
复制
public class Table
{
 public int UserID;
 public int PackageID;
}

我想从数据库中获取那些拥有所有包的用户,这些包都来自mustHavePackages列表。

到目前为止,我只实现了所有的用户,他们至少有一个包从mustHavePackages列表。

代码语言:javascript
复制
List<int> users =
(from t in db.Table
 where mustHavePackages.Contains(t.PackageID)
 select t.UserID).ToList();

现在我正在寻找类似ContainsAll或类似的东西。

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-19 14:36:43

代码语言:javascript
复制
var temp=
(from t in db.Table
 group t by t.UserId into g
 select new {UserId = g.Key, PackageIds = g.Select(gg=>gg.PackageId)}).ToList();

var users = (from t in temp
            where !mustHavePackages.Except(t.PackageIds).Any()
            select t.UserId).ToList();

也许是这样的。您可以在第一部分添加第二部分,也可以打一个电话,而不带来额外的数据,这是给您显示的细分。

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

https://stackoverflow.com/questions/22509028

复制
相关文章

相似问题

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