List<SalesRecord> SalesRecords = new List<SalesRecord>();
while(sr.EndOfStrem)
{
SalesRecord Sale = new SalesRecord();
//assigns data to sale.pluid, sale,quantity, sale.subtotal
SalesRecords.Add(Sale);
}
foreach (SalesRecord _sale in SalesRecords)
{
foreach (SalesRecord _matchingSale in SalesRecords)
{
if (_sale.PLUId == _matchingSale.PLUId)
{
_sale.Quantity = _sale.Quantity + _matchingSale.Quantity;
_sale.Subtotal = _sale.Subtotal + _matchingSale.Subtotal;
//SalesRecords.Remove(_matchingSale);
}
}
}
Console.WriteLine(SalesRecords.ToList());
這只是輸出:邏輯運行2個循環,比較,更新,然後刪除?
Synchroniser.SalesRecord,
Synchroniser.SalesRecord,
Synchroniser.SalesRecord,
Synchroniser.SalesRecord,
Synchroniser.SalesRecord,
Synchroniser.SalesRecord
etc..etc..etcc
我要輸出saleRecords的銷售?編號,數量和小計?,爲每個記錄
另外我已經commneted刪除線。因爲這會引發錯誤:集合已被修改:枚舉操作可能無法執行。
我的邏輯錯了嗎? 我想要做的是
- 創建一個列表。
- 貫穿流式閱讀器,每次運行時都會添加一個「銷售」記錄並填充,然後將其添加到SalesRecords中。
- 在流式播放器的末尾,使用2個循環來比較循環,因爲可能有多個記錄用於同一個pluId,例如。
輸入
PLUId Quantity Subtotal
1 4 4.00
2 2 8.50
3 7 3.90
1 3 3.00
所以在最後我想下面outputed:
PLUId Quantity Subtotal
1 7 7.00
2 2 8.50
3 7 3.90
..please建議