0

我是使用 C# 和数据库的新手。

迭代时,我需要迭代数据表(包含在数据集中),我可能需要将当前行的值与上一行或下一行的值进行比较。

我目前正在这样迭代:

 foreach(DataRow dr in ds.Tables["Invoices"].Rows)
 {
     //Check if invoice id is equal to invoice id from previous/next row

 }

我能想到的一种方法是维护“prev”变量来存储旧值并进行比较和更新,但我想看看 DataTable 是否提供任何内置选项。

谢谢,卡尔文

4

2 回答 2

6
for( int i = 0; i < ds.Tables["Invoices"].Rows.Count; i++ )
{
    if( i > 0 )
    {
       // Compare with previous row using index
       if( ds.Tables["Invoices"].Rows[i]["Amount"] > ds.Tables["Invoices"].Rows[i - 1]["Amount"])
       {}
    }
    if( i < ds.Tables["Invoices"].Rows.Count - 1 )
    {
        if( ds.Tables["Invoices"].Rows[i]["Amount"] > ds.Tables["Invoices"].Rows[i + 1]["Amount"])
        {}
    }
}
于 2012-06-11T20:16:41.137 回答
1

如果您需要随机访问,请不要使用,而是使用带有索引foreach的普通旧 unhip循环。for

于 2012-06-11T20:10:45.597 回答