2017-03-27 42 views
0

我想提取添加到列表中的新細節。所以我想基本上比較這兩個列表以根據兩個標準消除新項目。檢查現有列表中的新項目LINQ/LAMBDA/C#

這個例子正常工作時,有一個標準:

var newDetails = item.BranchDetails.Where(ibd => !CartItemsDetails.Select(cid => cid.BRANCH_ID).ToList().Contains(ibd.BranchId)).ToList(); 

我希望把它進一步和對證,當BranchIds都是平等的,LotNumber。我無法弄清楚。

+0

你能解釋如何是你的第二個條件? – octavioccl

+0

'BranchIds是否相等且LotNumber'是什麼意思? –

回答

0

使用Any擴展方法相反,它會讓你定義一個布爾表達式,你可以比較幾個屬性:

var newDetails = item.BranchDetails 
        .Where(ibd => !CartItemsDetails 
            .Any(cid => cid.BRANCH_ID==ibd.BranchId 
              && cid.LotNumber==ibd.LotNumber)) 
        .ToList();