首页 > 解决方案 > 如何获取 DataGridView 中每一行的平均金额 - C# .NET

问题描述

我有一个DataGridView在毕业簿程序中显示学生成绩的工具。我想务实地找到每一行中每个学生的平均成绩。这是程序到目前为止的样子。

在此处输入图像描述

这就是我试图做的。但是,它没有按预期工作。

foreach (DataGridViewRow row in sheet.Rows)
{
     <int> list = new List<int>();
     foreach (DataGridViewCell cell in row.Cells)        
          MessageBox.Show(cell.ToString());
}

我应该怎么办?感谢所有帮助。

标签: c#

解决方案


如果您将 Grid 绑定到 DataTable,最好在 DataTable 中进行计算 - 显然,您将每行的分数相加并除以将结果放在“平均”列中的成绩数。

DataTable 的替代方案是List<Student>其中Student包含字段的类,其中包括平均计算字段。

如果您使用的是 Excel 电子表格,则可以在循环中进行计算,例如:

foreach (var row in sheet.Rows)
{
     int i = 0;
     float avg = 0;
     foreach (var cell in row.Cells)
     {
             i += 1;
             if (i > colAverage) {
             float grade = cell.value;
             avg += grade;
             }
     }
     row[colAverage] = avg / (row.Cells.Count - colAverage);
}

推荐阅读