c# - 如何获取 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());
}
我应该怎么办?感谢所有帮助。
解决方案
如果您将 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);
}
推荐阅读
- ruby-on-rails - How do I convert the nodes returned when doing a path search in Neo4j?
- mysql - 在mysql中使用insert into时,表名后有一个点是什么意思?
- c# - Why does the null-conditional operator promote thread-safety in C#?
- c - 使用指针按字母顺序对字符串数组进行排序
- c# - 无法将类型“System.DateTime”隐式转换为 IEnumerable
- vim - 使用 vimscript 通过使用普通 vim 命令运行测试脚本
- python - 查找给定字符串中使用的字符的最大频率
- reactjs - Stripe + NextJs - 未定义窗口
- python - 如何在 pygame 中以正确的方式使用 blit()?
- flutter - Flutter 更新到 1.15.22-pre.18 后将无法在 iOS 上运行。Xcode 构建失败