根据单元格的值删除datatable中此单元格所在的行。
我想根据单元格的值删除datatable中此单元格所在的行。
if (listAttr.Count > 0)
{
string attr = "";
for (int k = 0; k < dt.Rows.Count; k++)
{
if (listAttr.Contains(dt.Rows[k]["flngitemid"].ToInt()))
{
for (int i = 0; i < listAttr.Count; i++)
{
//这里会出现问题,delete之后,dt.Rows.Count随之改变,虽然不会报错,但是数据是错误的
dt.Rows[k].Delete();
}
}
}
}
有人能帮忙解决一下吗。
------解决方案--------------------一般要删除的时候付个删除标签,例如.IsDelete = true这样,显示的时候判断下
------解决方案--------------------list中的索引应该和datable中的索引是一样的吧,只要你没有对table进行过select等,那么,直接根据索引移除table中的row就行了
------解决方案-------------------- var row = dt.Rows.OfType<DataRow>().Where(t => t.Field<string>("id") == "2").ToList();
row.ForEach(T => dt.Rows.Remove(T));//将id为2的行删除