从另一个对象中选择id = id的对象

时间:2014-05-19 13:32:12

标签: c# wpf linq list

我的List<objectA>包含以下对象:

productID int
price decimal
带有对象的

List<objectB>

categoryID int
categoryName string
List<int> productList

现在,如果我想从ListB中选择与ListA相同的productID的所有产品,我可以这样做:

ListB.Where(x=>x.productList.Contains(LA.productID))

但我怎么能这样做:

ListA.Where(x=>x.productID in ListB.productList) 

@@ EIT:

public class product
{
    public int pID {get; set; }
    public decimal price {get; set; }
}


public class catAndProd
{
    public int categoryID { get; set; }
    public string categoryName { get; set; }
    public List<int> prodList { get; set; }
}

所以我的__prodCatList包含如下元素:

1,"Cat1", {1}
2,"Cat2", {2}

现在,ItemsSource到grid:

productsDG.ItemsSource = FastSellSearchClass.listaWar.Where(x => __prodCatList.Any(q => q.prodList.Contains(x.pID)));

将相同的项目返回到网格。 有什么想法吗?

2 个答案:

答案 0 :(得分:4)

您可以使用Any + productList.Contains

var query = ListA
    .Where(a => ListB.Any(b => b.productList.Contains(a.productID)));

答案 1 :(得分:2)

您可以使用下面提到的代码

var abc=ListA.where(x=>ListB.Any(q=>q.ProductId==x.ProductId));