net convertir array c# .net datatable iteration datarow

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) { ... } }