DataTable – foreach Row, TRANNE IL PRIMO

Sto usando un DataTable per alcuni calcoli nella mia app. Ho bisogno di fare l’iterate attraverso tutte le righe tranne la prima. È ansible?

Qualcosa di simile a:

 DataTable dt; foreach (DataRow r in dt.Rows /*EXCEPT THE FIRST ONE*/) { //do something... } 

    Ok, hai le tue risposte, ma nel caso tu non voglia usare linq. Controlla l’indice della riga nella tabella:

      foreach (DataRow row in m_dtMatrix.Rows) { if (m_dtMatrix.Rows.IndexOf(row) != 0) { ... } } 

    LINQ è tuo amico:

     DataTable dt; foreach (DataRow r in dt.Rows.Cast().Skip(1)) { //do something... } 

    La chiamata a Cast() è necessaria qui poiché DataTable.Rows implementa l’ IEnumerable non generico ei metodi di estensione di linq sono disponibili solo per IEnumerable

    Hai anche un’altra opzione:

     DataTable dt; foreach (DataRow r in dt.AsEnumerable().Skip(1)) { //do something... } 

    Ecco un veloce e sporco

     DataTable dt; bool isFirst = true; foreach (DataRow r in dt.Rows /*EXCEPT THE FIRST ONE*/) { if( isFirst ) { isFirst = false; continue; } //do something... }