我有一个基本对象SalesLine,其中包含属性数量。我需要知道任何SalesLine对象的数量是否为五个或更多。在一个简单的世界中,您可以检查SalesLine对象是否包含5个或更多数量:
foreach(SalesLine salesline in Transaction.SalesLines
{
if(salesline.Quantity >=5)
}
但不幸的是,我们不住在一个。如果收银员扫描产品a中的4个,然后扫描产品b,然后扫描另一个产品a,则不会在一行上进行汇总。我们现在在Transaction.SalesLines中有三个销售线,但只有两个独特的产品。要知道哪个SalesLine属于同一产品,我们可以使用属性SalesLine.ItemID。
如何编写基本上检查是否存在五种或更多任何独特产品的代码?
答案 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*/
}