c# - 如何在数据表中按列名添加新行

标签 c# datatable average

我尝试在计算列中每个单元格的平均值时将新行添加到列的页脚。

原始数据表:

 col1 | col2 | col3 | ... | col20 |
------|------|------|-----|-------|
  5   |  10  |  5   | ... |   8   |
------|------|------|-----|-------|
  8   |   7  |  8   | ... |   2   |

我想在下面做:

  col1 | col2 | col3 | ... | col20 |
 ------|------|------|-----|-------|
   5   |  10  |  5   | ... |   8   |
 ------|------|------|-----|-------|
   8   |   7  |  8   | ... |   2   |
-------|------|------|-----|-------|
  6.5  |  8.5 | 6.5  | ... |   5   |

这是我的代码:

    if(sum[i] == 0 )
    {
       dt.Columns.Remove("BIN"+i.ToString()+"");
    }
    else
    {
       dt.Columns.Add("%BIN"+i.ToString()+"", typeof(decimal),"(BIN"+i.ToString()+" / 
       [In System])*100");
       if (i == 1)
       {
         dt.Columns.Add("100-%BIN1", typeof(double), "100 -[%BIN1]");
         Avg[i] = Convert.ToDouble(dt.Compute("Avg([col"+i.Tostring()+"])", string.Empty));
       }
       else
       {
         Avg[i] = Convert.ToDouble(dt.Compute("Avg([col" + i.ToString() + "])", string.Empty)); 
       }
       dt.Rows.Add("Avg_xbar"+i.ToString()+"", Avg[i]);
   }

从我上面的代码来看,结果有问题如下:

    col1   | col2 | col3 | ... | col20 |
-----------|------|------|-----|-------|
     5     |  10  |  5   | ... |   8   |
-----------|------|------|-----|-------|
    8      |   7  |  8   | ... |   2   |
-----------|------|------|-----|-------|
Avg_xbar1  | 6.5  |      |     |       |
-----------|------|------|-----|-------|
Avg_xbar2  | 8.5  |      |     |       |
-----------|------|------|-----|-------|
Avg_xbar3  | 6.5  |      |     |       |
-----------|------|------|-----|-------|
   ...     | ...  |      |     |       |
-----------|------|------|-----|-------|
Avg_xbar20 |  5   |      |     |       |

最佳答案

我假设您已经为每一列循环运行该代码。您需要将添加的行移到此循环之外。

for (var i = 0; i < columns.length; i++) {
  // existing looping logic
}
dt.Rows.Add(Avg);

关于c# - 如何在数据表中按列名添加新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58280252/

相关文章:

c# - 连接泄漏可能会导致超时过期。从池中获取连接之前超时时间已过?

c# - EF Core - 表 '*.__EFMigrationsHistory' 不存在

C# 复制字符串的子串,然后将其放在字符串的下一个单词之前

javascript - 如何在 vuejs 中用新数据刷新数据表?

java - 查找 map 中每个键的平均对象字段

c# - catch 子句的顺序

vb.net - 将运行时创建的数据表保存到空 mdb

c# - 无法在表适配器配置属性中找到对象 'MyConnName' 的连接 'Web.config'

c++ - 平均功能不正确

mysql - SUM 后在 SQL 查询中查找 AVG 值 - 组函数的使用无效