嗨,我有字符串表列表
List<string[]> PositionList23 = new List<string[]>();
该列表包含使用拆分从文件中获取的文档的位置。
每个字符串表有 5 个元素:产品代码、净值、增值税价值、总价值、增值税
所以它可以看起来像
- XXX, 10.00, 2.00,
- 12.00, 20.00
- XXZ, 15.00, 3.00, 18.00, 20.00 XXY, 20.00, 1.00,
- 12.00, 5.00 XYY, 40.00, 2.00,
- 41.00, 5.00 XZZ, 40.00,
- 3.20, 41.00, 8.00
最后,我想要这样的结构:sum(净值),sum(vatvalue),sum(总值),vatrate因此,在给定的考试中,它将是:
- 25.00, 5.00, 30.00 , "20.00"
- 60.00, 3.00, 63.00, "5.00"
- 40.00, 3.20, 43.20, "8.00"
但请记住,该列表是字符串表,因此它没有像 netvalue 这样的名称,但总和必须根据表中的位置进行计数(例如,netvalue 始终是 2 处的元素)。 并且该表是字符串,因此必须以某种方式转换求和元素)。
我的代码:
var results =
from row in PositionList
group row by row[3] into grp
//orderby grp.Key
select new
{
VATRate = grp.Key,
Net = grp.Sum(r => Convert.ToDouble(r[0])),
Vat = grp.Sum(r => Convert.ToDouble(r[1])),
Gros = grp.Sum(r => Convert.ToDouble(r[2]))
};
但我得到 格式异常 在行中:Net = grp。Sum(r => Convert.ToDouble(r[0])),
(如何在注释中粘贴代码?
你能尝试一下吗?
var resultList = PositionList23.GroupBy(x => x[4]).Select(y => new string[]
{
y.Sum(n => Convert.ToDecimal(n[1])).ToString(),
y.Sum(v => Convert.ToDecimal(v[2])).ToString(),
y.Sum(g => Convert.ToDecimal(g[3])).ToString(),
y.Key.ToString()
}).ToList();
编辑:
以您想要的方式格式化列表,
var resultList = PositionList23.GroupBy(x => x[4]).Select(y => new
{
NetValue = y.Sum(n => Convert.ToDecimal(n[1])),
VatValue = y.Sum(v => Convert.ToDecimal(v[2])),
GrossValue = y.Sum(g => Convert.ToDecimal(g[3])),
VATRate = y.Key
}).ToList();
希望这有帮助...