我有一个名为发票清单的LIST,其中包含以下项目.
ID:1
Total:5
Description:Test
Date:2012-01-01
Difference:
ID:2
Total:10
Description:Test
Date:2012-02-01
Difference:
ID:3
Total:15
Description:Test
Date:2012-03-01
Difference:
ID:4
Total:20
Description:Test
Date:2012-04-01
Difference:
Run Code Online (Sandbox Code Playgroud)
我需要使用LINQ(最好)计算每个发票ID之间的差异.最终输出应如下所示:
ID:1
Total:5
Description:Test
Date:2012-01-01
Difference:0
ID:2
Total:10
Description:Test
Date:2012-02-01
Difference:5
ID:3
Total:15
Description:Test
Date:2012-03-01
Difference: 5
ID:4
Total:20
Description:Test
Date:2012-04-01
Difference:5
Run Code Online (Sandbox Code Playgroud)
有人可以建议一下上面最好的方法吗?
我怀疑Zip你的朋友在这里:
var withNull = new Invoice[] { null }.Concat(invoices);
var withDifference = withNull.Zip(withNull.Skip(1),
(x, y) => x == null ? y :
new Invoice {
ID = y.ID,
Total = y.Total,
Date = y.Date,
Difference = y.Total - x.Total
}
)
.ToList();
Run Code Online (Sandbox Code Playgroud)
我将解决它是如何工作的(以及为什么你需要null)作为练习 - 如果有必要,我可以提供一些提示......
| 归档时间: |
|
| 查看次数: |
1008 次 |
| 最近记录: |