Можно ли сделать индексаторы динамической длиный?
class People{
List<Person> data = new List<Person>();
...

+ обработка ошибок
Такое ощущение, что вам нужен Dictionary<int, Person>, вместо массива, тогда не нужно будет динамически расширять массив, когда это надо (и не будет создаваться лишнее пустое место, если вы захотите пропустить пару сотен элементов)