2013-05-30 53 views
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; 
    } 

} 

在兩個不同的對象列表我要findout如果一個列表的項目包含在其他列表,然後返回我的items.After它返回我要檢查是否givenItem是存在於返回的列表,然後返回true,否則返回假。如何檢查IEnumerable列表中的「包含」?

回答

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)返回類型是布爾所以不需要用布爾再次檢查的平等。