使用LINQ从循环中获取单个ID

时间:2013-04-17 14:16:12

标签: c# linq

我有一种方法可以将具有相同productID的项目组合在一起,然后将它们的数量一起添加到购物车中的项目。现在我正在尝试添加它,它还添加了添加到购物车的页面的数量。因此,在调用此方法时,我会发送用户选择的产量和数量,以添加到总数量中。但我遇到的问题是将发送给这种方法的项目的产品与被归为一组的产品进行比较。

以下是我在下面的内容,评论部分是我试图解决的问题,但发现我的想法是错误的。

double totalQty = 0;
bool isQtyValid = true;

List<ShoppingCartDTO> shoppingList = ShoppingCart.Fetch(string.Format("WHERE SessionID='{0}'", sessionID)); 
foreach (ShoppingCartDTO temp in shoppingList)
 {
    var groupList = shoppingList.GroupBy(item => item.ProductID);
    foreach (var m in groupList)
     {                    
        //var productID = m.Select(p => p.ProductID);
        //int prodID = Convert.ToInt32(productID);
        //if (ProductID == prodID)
        //{
             var sum = m.Sum(i => i.Quantity);
             totalQty = sum;
             //totalQty += qty;
             isQtyValid = CheckQty(totalQty, temp.ProductID, temp.CustomerID);
        //}
     }
 }

如果有人能提供一些指示或想法,我会非常感激。如果它可以使用更多解释,我也可以这样做,或者如果你想看到我正在使用的更多代码,我也可以添加它。

感谢任何有帮助的人。

1 个答案:

答案 0 :(得分:3)

您按产品ID分组,因此它是您的论坛的Key

foreach (var m in groupList)
{                    
    var productID = m.Key;
    // The rest of your code.
}