我需要在网格视图中遍历DataRow,以比较当前行和前一行的值。如果有人能在这个问题上提供帮助,我将不胜感激。我是新来的
我目前正在像这样迭代,但我不知道如何继续:
//检查当前行ACTIVITY = LOAD_A和前一行ACTIVITY = LOAD_B是否为true,然后保存该值并进行求和计算。
foreach (DataRow sda in dt.Rows)
{
if (sda.Field<string>("ACTIVITY") == "LOAD_A")
{
}
}发布于 2020-08-19 20:45:15
正如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;
}发布于 2020-08-19 21:22:00
您可以使用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
}
}https://stackoverflow.com/questions/63443286
复制相似问题