数据表 DT
num type name
===================================
001 A Peter
002 A Sam
003 B John
public static void fun1(ref DataTable DT, String TargetType)
{
for (int i = 0; i < DT.Rows.Count; i++)
{
string type = DT.Rows[i]["type"];
if (type == TargetType)
{
/**Do Something**/
DT.Rows[i].Delete();
}
}
DT.AcceptChanges();
}
我的函数根据 TargetType 获取数据表中的特定数据行,并使用它们的信息来做某事。读取数据行(匹配目标类型)后,将被删除。
但是,该行在 .Delete() 执行后立即被删除,因此下一行(按 i)的位置不正确。
例如,如果 TargetType 为 A。当 i=0 时,执行 .Delete 后删除“Peter”行。然后当 i=1 时,我想它会找到“Sam”行,但实际上它位于“John”行,因为“Peter”行被删除了。
我的代码有问题吗?