Estoy involucrado en un proceso de aprendizaje de C# y va bien hasta ahora. Sin embargo, ahora mismo toco mi primer "¿decir qué?" momento.DataTable, cómo eliminar condicionalmente las filas
DataTable ofrece acceso de fila aleatorio a su colección de filas, no solo a través del comportamiento de colecciones típicas, sino también a través de DataTable.Select. Sin embargo, parece que no puedo vincular esta capacidad con DataRow.Delete. Hasta ahora esto es lo que parece que necesito hacer para eliminar condicionalmente una o más filas de una tabla.
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();
Pero no estoy satisfecho con este código. Ni estoy convencido. Debo estar perdiendo algo. ¿De verdad me veo obligado a presionar secuencialmente la colección Filas si necesito eliminar una o más filas de forma condicional?
(no les importa la invertida para. Estoy borrando desde el final de la tabla de datos. Así que está bien)
Ah! No se me ocurrió seleccionar() devolvería una referencia a las filas de tablas de datos. Sabía que tenía que estar perdiendo algo. ¡Gracias un montón! –
Demasiado buena solución, esto también resolvió mi problema de datatable.select cambiando el orden. – Signcodeindie
Gran solución Matthew – Ravia