c# - convertir - DataTable-foreach Row, EXCEPTO FIRST ONE
datatable to string vb net (3)
Aquí hay un rápido y sucio
DataTable dt;
bool isFirst = true;
foreach (DataRow r in dt.Rows /*EXCEPT THE FIRST ONE*/)
{
if( isFirst ) {
isFirst = false;
continue;
}
//do something...
}
Estoy usando una DataTable
para algunos cálculos en mi aplicación. Necesito hacer la iteración a través de todas las filas excepto la primera. ¿Es posible?
Algo como:
DataTable dt;
foreach (DataRow r in dt.Rows /*EXCEPT THE FIRST ONE*/)
{
//do something...
}
LINQ es tu amigo:
DataTable dt;
foreach (DataRow r in dt.Rows.Cast<DataRow>().Skip(1))
{
//do something...
}
Aquí se requiere la llamada a Cast()
ya que DataTable.Rows
implementa el IEnumerable
no genérico, y los métodos de extensión de linq solo están disponibles para IEnumerable<T>
También tienes otra opción:
DataTable dt;
foreach (DataRow r in dt.AsEnumerable().Skip(1))
{
//do something...
}
Ok, tienes tus respuestas, pero en caso de que no quieras usar linq. Verifique el índice de la fila en la tabla:
foreach (DataRow row in m_dtMatrix.Rows)
{
if (m_dtMatrix.Rows.IndexOf(row) != 0)
{
...
}
}