2016-12-22 40 views
0

我有一個基本對象SalesLine,其中包含屬性數量。我需要知道是否有任何SalesLine對象的數量爲五或更多。在一個簡單的世界裏,你可以只檢查SalesLine對象有5個或更多數量的:檢查收據是否有五個或更多產品

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

但不幸的是,我們不是生活在一個。如果收銀員掃描4件產品a,然後掃描產品b,然後再掃描一件產品a,則不會在一行中進行總結。我們現在在Transaction.SalesLines中有三條銷售線,但只有兩個獨特的產品。要知道哪個SalesLine是同一個產品,我們可以使用屬性SalesLine.ItemID。

如何編寫一個基本檢查是否存在五個或更多任何獨特產品的代碼?

+0

請問您可以發佈您的SalesLine類嗎? – MadOX

回答

4

如果收銀員掃描產物的4,然後掃描產品b,則掃描一個​​更產物的,它不會被概括在一行

然後固定掃描物品時並將其添加到您的收藏?它使整個過程更簡單,包括打印收據。

另外,按該產品的唯一標識符的所有行,所以像:

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

這當然是最好的方式,但收據是收銀員如何掃描產品的證明。這就是爲什麼他們不會通過唯一的itemid來總結SalesLine。 – miniHessel

+0

數量實際上是一個小數,但我想我可以做(int)p.Quantity。很好的回答,正是我在想什麼。 – miniHessel

0

你可以試試這個。這將按項目ID總結數量

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