Использование IList<T>.Insert(int index,T item)
IList<string> mylist = new List<string>(15);
mylist.Insert(0, "hello");
mylist.Insert(1, "world");
mylist.Insert(15, "batman"); // This will throw an exception.
От MSDN
Если индекс равен количеству элементов в IList, элемент добавляется в список.
В коллекциях смежных элементов, таких как списки, элементы, которые следуют за точкой вставки, перемещаются вниз для размещения нового элемента. Если коллекция проиндексирована, индексы перемещаемых элементов также обновляются. Это поведение не применяется к коллекциям, где элементы концептуально сгруппированы в сегменты, такие как хеш-таблица.