bool NonEquijoin(Product product)
{
var nonEquijoinQuery =
from p in products
let catIds = from c in categories
select c.ID
where catIds.Contains(p.CategoryID) == true
select new { Product = p.Name, CategoryID = p.CategoryID };
if (nonEquijoinQuery.Contains(product))
{
true;
}
else
{
false;
}
}
在两个不同的对象列表中,我必须找出一个列表中的项目是否包含在另一个列表中然后返回给我那些项目。返回后我必须检查返回列表中是否存在givenItem然后返回true否则返回false。
答案 0 :(得分:2)
bool NonEquijoin(Product product)
{
return (from p in products
let catIds = from c in categories
select c.ID
where catIds.Contains(p.CategoryID)).Any(a =>a.Name == product.Name);
}
旁注
catIds.Contains(p.CategoryID)
返回类型是bool所以不需要再次使用bool检查相等性。