日期:2014-05-20  浏览次数:21035 次

linq通过一个list条件查询另外一个list怎么实现

C# code


   var pkList = listPickOrderDetail2
                      .GroupBy(x => new { x.PKID, x.SKU })
                      .Select(group => new
                      {
                          Peo = group.Key,
                          Count = group.Count(),
                          SumQty = group.Sum(a => a.Quantity),
                          g = group.First()
                      });



上面这段代码是通过一个list 二个条件去进行分组, 得出来结果放在pkList 
但是我现在有个需求就是 通过这个pkList 里面的 pkid sku 再去数据库某个表里面去分组再查询出来一个list 
最后我用二个list做比较, 我需要不会的是怎么通过一个list条件再去查询另外一个list

------解决方案--------------------
C# code
var query = from x in list2
            let skus = pkList.Select(t => t.Peo.SKU).ToList()
            where skus.Contains(x.sku)
            select x;

------解决方案--------------------
在查询中let 使用外面的集合 是不行的吧?
先从 pkList 里面 提取出条件,再 在第二次查询where 中使用
 
------解决方案--------------------
[code=C#]
var query=from x in list2
where list.select(y=> y.sku).contains(x.skus)
select x;
[/code]