我正在学习C#,进展不错。但是,我现在遇到了第一个"不理解"的时刻。
DataTable提供对其Rows集合的随机行访问,不仅可以通过典型的集合行为,还可以通过DataTable.Select访问。然而,我似乎无法将此功能与DataRow.Delete联系起来。目前,这似乎是我需要执行的条件删除一个或多个表中的行的操作。
int max = someDataTable.Rows.Count - 1;
for(int i = max; i >= 0; --i)
{
if((int)someDataTable.Rows[i].ItemArray[0] == someValue)
{
someDataTable.Rows[i].BeginEdit();
someDataTable.Rows[i].Delete();
}
else
break;
}
someDataTable.AcceptChanges();
但是我对这段代码并不满意。我也不太确定。我一定漏掉了什么。如果我需要有条件地删除一个或多个行,那我真的被迫按顺序遍历Rows集合吗?
(不要在意倒序的for循环。我正在从数据表的末尾开始删除。所以没问题)
dt.AcceptChanges()
- Damith