c#Datagridview行计算

c#Datagridview行计算,c#,datagridview,date-arithmetic,C#,Datagridview,Date Arithmetic,我有一个带有Datagridview的windows窗体,其中包含xml文件中的数据。DGV的设置如下:日期、产品、价格 共有10行数据 我试图计算从一行到下一行的价格变化,但很难找到解决方案。例如: 1/1/12, ABC, $2.00 1/1/12, ABC, $2.50 Net Change: .50 跨列,我可以使用Table.columns.Expression,但我不清楚如何进行此计算,减去先前的和当前的 我曾考虑过遍历列,添加到一个新表中,然后以这种方式进行计算,但这似乎是一个

我有一个带有Datagridview的windows窗体,其中包含xml文件中的数据。DGV的设置如下:日期、产品、价格

共有10行数据

我试图计算从一行到下一行的价格变化,但很难找到解决方案。例如:

1/1/12, ABC, $2.00
1/1/12, ABC, $2.50

Net Change: .50
跨列,我可以使用Table.columns.Expression,但我不清楚如何进行此计算,减去先前的和当前的

我曾考虑过遍历列,添加到一个新表中,然后以这种方式进行计算,但这似乎是一个低于标准的解决方案。一旦我得到更改Id,我想将其添加到Datagridview

没有测试过,但类似于这样:

if (dataGridView1.Rows.Count > 0)
{
    specifier = "###,###.00";

    double tier1Minus = 0;
    double tier2Minus = 0;

    for (int i = 0; i < dataGridView1.Rows.Count; ++i)
    {
        tier1Minus += Convert.ToDouble(dataGridView1.Rows[i].Cells["Price"].Value);

        tier2Minus += Convert.ToDouble(dataGridView1.Rows[i+1].Cells["Price"].Value);
    }

    // then add to dataGridView1
}
if(dataGridView1.Rows.Count>0)
{
说明符=“###,####.00”;
双层1负=0;
双二级负=0;
对于(int i=0;i
为什么不做类似的事情(未经测试):

for(int i=0;i

或者,最好在第一次从文件中导入数据并插入行时进行计算。

ah!我没有想过这样引用它。我试试看。谢谢确保已禁用排序
for(int i = 0; i < dataGridView1.Rows.Count - 1; i++)
    dataGridView1.Rows[i+1].Cells["NetChange"].Value =
        Convert.ToDouble(dataGridView1.Rows[i+1].Cells["Price"].Value) - 
        Convert.ToDouble(dataGridView1.Rows[i].Cells["Price"].Value);