Для многомерных массивов Array.CreateInstance может использоваться для создания ненулевых массивов на основе индексов, но если вы попробуете это для 1-мерных массивов (векторов), как, например,:
public double[] myArray = (double[])Array.CreateInstance(typeof(double), new int[1] { 12 }, new int[1] { 1 });
это не удастся во время выполнения, когда сбрасывается из многомерного массива в одномерный массив
"Unable to cast object of type 'System.Double[*]' to type 'System.Double[]'"
Теперь я мог бы просто создать нулевой массив и игнорировать первое значение или работать с смещениями и т.д., но могу ли я игнорировать некоторую синтаксическую магию С#, которая позволяет использовать векторы с нулевым основанием?
Update:
Я возьму Эрик Липперт за это, если он скажет "Нет очевидного способа сделать ненулевой массив на С#"