I'm engaged in a C# learning process and it is going well so far. I however just now hit my first "say what?" moment.
The DataTable offers random row access to its Rows collection, not only through typical collections behavior, but also through DataTable.Select. However I cannot seem to be able to tie this ability to DataRow.Delete. So far this is what it seems I need to do in order to conditionally delete one or more rows from a table.
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();
But I'm not happy with this code. Neither I'm convinced. I must be missing something. Am I really forced to hit the Rows collection sequentially if I need to delete one or more rows conditionally?
(don't mind the inverted for. I'm deleting from the end of the datatable. So it's ok)
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…