title: Adding to List<t> becomes very slow over time
body: <p>I'm parsing an html table that has about 1000 rows. I'm adding ~10 char string from one <code>&lt;td&gt;</code> in each row to a <code>list&lt;string&gt;</code> object. It's very quick for the first 200 or so loops but then becomes slower and slower over time.</p>
  
  <p>This is the code i'm using:</p>
  
  <pre><code>List&lt;string&gt; myList = new List&lt;string&gt;();
          int maxRows = numRows;
  
  
          for (int i = 1; i &lt; maxRows; i++)
          { 
              TableRow newTable = myTable.TableRows[i];
              string coll = string.Format("{0},{1},{2},{3},{4}",newTable.TableCells[0].Text,newTable.TableCells[1].Text,newTable.TableCells[2].Text,newTable.TableCells[3].Text,newTable.TableCells[4].Text);
              myList.Add(coll);
              label1.Text = i.ToString();
          }
  </code></pre>
  
  <p>Should I use an array instead?</p>
  
  <p><strong>Edit:</strong> I threw the above code in a new method that gets run on a new <code>Thread</code> and then updated my label control with this code:</p>
  
  <pre><code>label1.Invoke((MethodInvoker)delegate
                  {
                      label1.Text = i.ToString();
                  });
  </code></pre>
  
  <p>Program runs at a consistent speed and doesn't block the UI.</p>