问题描述
我需要遍历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
}
}