如何计算List>使用c#
本文关键字:List string 使用 何计算 计算 | 更新日期: 2023-09-27 18:03:00
我有一个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
}
这是我的实际要求。
试试吧。我假设您使用的是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