title: Method to remove empty rows from DataTable?
body: <p>I parsed through an Excel spreadsheet and returned the entire result as a DataTable.  However, this Excel spreadsheet has several empty rows that I would like to eliminate from the resulting DataTable.  In particular, each empty row begins with an empty cell.  So, I know that the entire row is empty if the value of the cell at the first index is empty.  Note that I cannot simply modify the Excel spreadsheet because I have to work with exactly what the client has sent to me.  Based on this information, I assumed that I could perform the following function to remove empty rows:</p>
  
  <pre><code>' DataTable dt has already been populated with the data
  
  For Each row As DataRow In dt.Rows
      If dt.Rows.Item(0).ToString = "" Then
          dt.Rows.Remove(row)
      ElseIf dt.Rows.Item(0) Is Nothing Then
          dt.Rows.Remove(row)
      End If
  Next
  </code></pre>
  
  <p>However, after crafting this solution, I am greeted with the following error:</p>
  
  <pre><code>Collection was modified; enumeration operation might not execute.
  </code></pre>
  
  <p>I now realize that I cannot alter the collection as I access it.  How can I get around this?  I'm wondering if I should create a new DataTable with the rows that aren't empty.  Is this the best approach or are there better options?</p>
  
  <p>EDIT:  I have also tried iterating over the rows backwards:</p>
  
  <pre><code>For i = dt.Rows.Count() - 1 To 0
      If dt.Rows.Item(i).Item(0).ToString = "" Then
          dt.Rows.RemoveAt(i)
      End If
  Next
  </code></pre>