我有一个列表,其中包含一些包ID。
List<int> mustHavePackages = GetMustHavePackages();和一个数据库表
public class Table
{
public int UserID;
public int PackageID;
}我想从数据库中获取那些拥有所有包的用户,这些包都来自mustHavePackages列表。
到目前为止,我只实现了所有的用户,他们至少有一个包从mustHavePackages列表。
List<int> users =
(from t in db.Table
where mustHavePackages.Contains(t.PackageID)
select t.UserID).ToList();现在我正在寻找类似ContainsAll或类似的东西。
任何帮助都将不胜感激。
发布于 2014-03-19 14:36:43
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();也许是这样的。您可以在第一部分添加第二部分,也可以打一个电话,而不带来额外的数据,这是给您显示的细分。
https://stackoverflow.com/questions/22509028
复制相似问题