【发布时间】:2021-02-01 10:57:21
【问题描述】:
我有一个包含项目的数组,其中一个条目是另一个包含行项目的数组
行项目有 Date QtyIn QtyOut
很难画出表格,但是像这样:
| itemID | ItemName | Stock | LineItems |
|---|---|---|---|
| Date, QtyIn, QtyOut | |||
| AppG1 | Green Apple | 100 | 2021-02-01, 100, 0 |
| 2021-02-02, 0, 60 | |||
| 2021-02-03, 0, 10 | |||
| AppR1 | Red Apple | 85 | 2021-02-01, 500, 0 |
| 2021-02-02, 10, 0 |
我想为每个行项目生成一个流动余额,这是每个条目的 Stock +QtyIn -QtyOut
| itemID | ItemName | Stock | LineItems |
|---|---|---|---|
| Date, QtyIn, QtyOut, Balance | |||
| AppG1 | Green Apple | 100 | 2021-02-01, 100, 0, 200 |
| 2021-02-02 0 60, 140 | |||
| 2021-02-03 0 10, 130 | |||
| AppR1 | Red Apple | 85 | 2021-02-01, 500, 0, 585 |
| 2021-02-02, 10, 0, 595 |
再一次,很难画出表格,但希望你明白我的意思
我的代码如下所示:
var lineItems = from li in lineitems
select new LineItem
{ItemID = li.ItemID,
QtyIn = li.QtyIn,
QtyOut = li.QtyOut,
DueDate = li.DueDate,
}).OrderBy(o => o.ItemID).ThenBy(c => c.DueDate);
var result = from i in headeritems
select new HeaderItem
{ItemID = i.ItemID,
ItemName= i.ItemName,
Stock = i.ItemStock,
LineItems = lineItems.Where(w => w.ItemID == i.ItemID)
};
return result;
我希望我可以在 LineItem 类中添加一行来计算余额,但我不知道如何迭代这些 lineitems。然后我想我可以将它添加到将 lineitems 添加到结果数组的位置,但同样,我看不到如何执行此操作。有没有一种方法可以做到这一点,而不必使用循环遍历整个表?
【问题讨论】:
-
试图理解:为什么预期结果的第2行和第3行都是200?他们不应该分别是 140 和 130 吗?
-
你是对的,错字对不起。编辑问题
标签: c# asp.net entity-framework