0
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。

4

1 回答 1

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 检查相等性。

于 2013-05-30T05:16:14.010 回答