C# 循环访问数据表,与上一行或下一行进行比较
本文关键字:一行 比较 循环 访问 数据表 | 更新日期: 2023-09-27 18:37:01
我是使用C#和数据库的新手。
迭代时,我需要迭代 Datatable(包含在数据集中),我可能需要将当前行的值与上一行或下一行的值进行比较。
我目前正在像这样迭代:
foreach(DataRow dr in ds.Tables["Invoices"].Rows)
{
//Check if invoice id is equal to invoice id from previous/next row
}
我能想到的一种方法是维护"prev"变量来存储旧值并进行比较和更新,但我想看看 DataTable 是否提供了任何内置选项。
谢谢加尔文
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"])
{}
}
}
如果您需要随机访问,请不要使用 foreach
,而是使用带有索引的普通老式 for
循环。