下面所示的一切都是純粹的僞代碼來說明我的問題。如何按地點對項目進行分組並總結其數量?
我的代碼具有以下數據結構:
// Used to define the ORDERS a customer has placed
List<Orders> myOrders;
Orders
{
String name
double quantity
String location // there are only 2 possible locations
}
// Used to define the ITEMS we have available
Item
{
String name
List<Parts> parts
}
// Used to define the PARTS to make an ITEM
Parts
{
String name
double quantity
}
全面崩潰似乎不錯,清晰,但客戶的要求就是我有問題,我不知道如何以最佳方式解決問題.. (注意 - 我知道使用NAME而不是一個ID不好關聯 - 但這是一個遺留系統)。
我需要生成如下: - 按項目從每個位置(只有兩個可能),並通過訂單 定義的實際量所需的全部零件列表 - 顯示該屏幕上打印 ! !顯然,您可以在同一地點對同一部件進行多次訂購,並將它們加在一起得到總計。
所以我需要做的: - 以每個訂單,找到項目 - 以每個項目,並找到部分 - 每個零件限定其位置(從訂單)和數量(從訂單)繁殖和這是部分的#這個位置
最終的結果應該是這樣的(表網格狀頭)
Item Part QuantityLocation1 QuantityLocation2
itm1 A 1 0
B 4 2
itm2 C 0 5
的問題是,該部件分類明顯沒有這樣的概念位置... 。
任何人有任何建議嗎? 我現在可以看到的唯一解決方案似乎很可怕...創建一個新類(如PartswithLocation),將位置添加到它,然後使用此PartsWithLocation重新創建所有ITEM對象(已存在),然後我可以執行一些操作ORDER通過ORDER查找零件並根據位置進行數量乘法。最終的結果是一個新的列表,然後我可以顯示在一個網格或東西(WPF)...但是這個人聽起來很難看...
這純粹是一個設計相關的問題,我不是在尋找源代碼只是關於如何更好地解決我的問題的一些想法。 感謝您的寶貴時間和幫助,
Orders中的'name'字段與'Item'中的'name'字段相同嗎? – Bobson
是的,Order.name和Item.name相等 – JSchwartz
'Parts.name'是否也對應於'Orders'?否則,你根本無法按位置分解它,因爲你沒有跟蹤它。我有點困惑。 – Bobson