首页 > 解决方案 > C#为图表计算数据表列

问题描述

我想通过计算其他列中的项目来向我的数据表中添加一列。我知道,我可以这样做:

workTable.Columns.Add("Time", typeof(Double));  
workTable.Columns.Add("Distance", typeof(Double));  
workTable.Columns.Add("Velocity", typeof(Double), "Distance / Time");

在我的情况下,我需要添加实际上定义为:(距离-先前距离)/(时间-先前时间)的速度。

所以我想知道如何通过使用数据表其他行的值来创建一个新列。

标签: c#datatable

解决方案


谢谢你的代码。它没有像我预期的那样工作。

  1. 循环必须从 1 开始,而不是 0。
  2. 然后我不明白速度是如何计算的,结果就像我将距离乘以一个常数。我将代码更改为下面的代码,现在可以使用。

    for (int i = 1; i < workTable.Rows.Count; i++)
    {
        DataRow row = workTable.Rows[i];
        double velocity = (workTable.Rows[i].Field<double>("Distance") - 
        workTable.Rows[i-1].Field<double>("Distance")) / 
        (workTable.Rows[i].Field<double> 
        ("Time") - table.Rows[i - 1].Field<double>("Time"));
        row.SetField("Velocity", velocity);
    }
    

推荐阅读