初期容量を指定してListのインスタンスを作成しても、その数の要素数が確保されるわけではありません。 初期容量として指定した値に関わらず、インスタンスを作成した直後の要素数は0となります。

Listの初期容量を指定してもその要素数は確保されない
using System;
using System.Collections.Generic;

class Sample {
  static void Main()
  {
    // 初期容量に100を指定してListを作成
    List<int> list = new List<int>(100);

    // CountとCapacityを表示
    Console.WriteLine("Count = {0}", list.Count);
    Console.WriteLine("Capacity = {0}", list.Capacity);

    // インデックス50の要素を設定
    // (現在の要素数は0で、インデックス50は範囲外であるため、例外が発生する)
    list[50] = 0;
  }
}
実行結果
Count = 0
Capacity = 100

ハンドルされていない例外: System.ArgumentOutOfRangeException: インデックスが範囲を超えています。負でない値で、コレクションのサイズよりも小さくなければなりません。
パラメーター名: index
   場所 System.Collections.Generic.List`1.set_Item(Int32 index, T value)
   場所 Sample.Main()