title: C# Lists: initialize with size, why then can't use [] access until after .Add()?
body: <p>This works fine with an array:</p>
  
  <pre><code>int[] a = new int[10];
  for (int i = 0; i &lt; 10; i++)
  {
      a[i] = i;
  }
  </code></pre>
  
  <p>But this throws an ArgumentOutOfRangeException with a list:</p>
  
  <pre><code>List&lt;int&gt; a = new List&lt;int&gt;(10);
  for (int i = 0; i &lt; 10; i++)
  {
      a[i] = i;
  }
  </code></pre>
  
  <p>Why is that? I thought that lists used arrays internally.</p>