循环遍历DataRow以比较当前行数据和上一行数据

问题描述

我需要遍历gridview中的DaTarow,以比较当前行和上一行的值。感谢有人可以帮助解决这个问题。我是新来的

我目前正在这样迭代,但是我不知道如何继续:

//检查当前行ACTIVITY = LOAD_A和上一行ACTIVITY = LOAD_B是否为true,然后存储 值并进行总和计算。

foreach (DaTarow sda in dt.Rows)
 {

   if (sda.Field<string>("ACTIVITY") == "LOAD_A")
    {
  
    }
}

解决方法

正如devNull所述,您可以使用变量来保存foreach循环的上一次迭代的值。

这可能看起来像这样:

DataRow previousDr = null;
foreach (DataRow sda in dt.Rows)
{
    if (previousDr != null)
    {
        if (sda.Field<string>("ACTIVITY") == "LOAD_A" &&
            previousDr.Field<string>("ACTIVITY") == "LOAD_B")
        {
            //Store value und do calculation.
        }
    }
    previousDr = sda;
}
,

您可以使用for语句和DataRow的索引器属性来完成此操作

DataColumn column = table.Columns["ACTIVITY"];
for (int index = 1; index < table.Rows.Count; ++index)
{
    if (table.Rows[index - 1].Field<string>(column) == "LOAD_B" && // previous row
        table.Rows[index].Field<string>(column) == "LOAD_A")       // current row
    {
        // do somthing
    }
}