C# 有一个datatable 目前有好多行 新增一行 新增的一行前几列和第一行一样 后几列显示前面几行该列的平均值 空值显示为空
时间: 2024-02-06 12:02:27 浏览: 29
可以使用以下代码来实现:
```csharp
// 假设已经有一个名为 dataTable 的 DataTable 对象
// 新增一行
DataRow newRow = dataTable.NewRow();
// 设置前几列与第一行一样
for (int i = 0; i < numberOfColumnsToCopy; i++)
{
newRow[i] = dataTable.Rows[0][i];
}
// 设置后几列为对应列的平均值
for (int i = numberOfColumnsToCopy; i < dataTable.Columns.Count; i++)
{
double sum = 0;
int count = 0;
for (int j = 0; j < dataTable.Rows.Count; j++)
{
if (dataTable.Rows[j][i] != DBNull.Value)
{
sum += Convert.ToDouble(dataTable.Rows[j][i]);
count++;
}
}
if (count > 0)
{
newRow[i] = sum / count;
}
else
{
newRow[i] = DBNull.Value;
}
}
// 添加新行到 DataTable
dataTable.Rows.Add(newRow);
```
其中,`numberOfColumnsToCopy` 表示要复制的前几列的数量。在代码中需要替换成具体的数字。