如果有五个或更多产品,请检查收据

时间:2016-12-22 10:54:54

标签: c#

我有一个基本对象SalesLine,其中包含属性数量。我需要知道任何SalesLine对象的数量是否为五个或更多。在一个简单的世界中,您可以检查SalesLine对象是否包含5个或更多数量:

foreach(SalesLine salesline in Transaction.SalesLines
   {
     if(salesline.Quantity >=5)
   }

但不幸的是,我们不住在一个。如果收银员扫描产品a中的4个,然后扫描产品b,然后扫描另一个产品a,则不会在一行上进行汇总。我们现在在Transaction.SalesLines中有三个销售线,但只有两个独特的产品。要知道哪个SalesLine属于同一产品,我们可以使用属性SalesLine.ItemID。

如何编写基本上检查是否存在五种或更多任何独特产品的代码?

2 个答案:

答案 0 :(得分:4)

  

如果收银员扫描产品a中的4个,然后扫描产品b,然后再扫描一个产品a,则不会在一行上进行汇总

然后在扫描项目并将其添加到您的收藏集时修复它?它使整个过程更容易,包括打印收据。

或者,通过产品的唯一标识符对所有行进行分组,例如:

foreach (var products in Transaction.SalesLines.GroupBy(s => s.EAN))
{
    int productQuantity = products.Sum(p => p.Quantity);
}

答案 1 :(得分:0)

你可以试试这个。这将按itemid汇总数量

foreach (var item in list.GroupBy(x => x.ItemID).Where(x => x.Sum(i=>i.Quantity) >= 5))
{
    /*your stuff*/
}