如何计算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 
}

这是我的实际要求。

如何计算List<List<string>>使用c#

试试吧。我假设您使用的是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