我有一个List<List<string>>
。这些列表中的每个项目,将用于显示报告的列。
我需要计算报告中每个列的总和(在将字符串转换为十进制之后),并将其显示为页脚。
不确定,每个列表中的项目数量是否与其他列表匹配。
这意味着,应该转换每个列表项并将其汇总并添加到另一个列表中,该列表将用于显示为页脚行。
请建议我,在性能方面更好地使用哪种方法来实现这一目标。
List<List<string>> test = new List<List<string>>();
List<string> columnTotal = new List<string>();
decimal total = 0;
foreach (var item in test)
{
//Get first element
// decimal dec = Convert.ToDecimal(first element);
// total =total +dec ; ....
//Once first element in all the list has been added,
//columnTotal .add(convert.tostring(total));
//Now get the second element ...so on
}
这是我的实际要求。
答案 0 :(得分:0)
试一试。我假设您正在使用2D表而不是锯齿状表。
// Assuming a 2D table and not jagged
List<List<string>> table = new List<List<string>>
{
new List<string> { "1", "2", "3" },
new List<string> { "1", "2", "3" },
new List<string> { "1", "2", "3" },
new List<string> { "2", "3", "4" }
};
List<decimal> footerTotals = new List<decimal>();
for (int i = 0; i < table[0].Count; i++)
{
// Sum the columns
footerTotals.Add(table.Sum(t => decimal.Parse(t[i])));
}
table.ForEach(row => Console.WriteLine(String.Join("\t", row)));
Console.WriteLine(String.Join("\t", footerTotals));
结果:
1 2 3
1 2 3
1 2 3
2 3 4
5 9 13