Это, вероятно, будет немного быстрее - и, конечно, проще:
int[] values = Enumerable.Range(start, end - start).ToArray();
Вам определенно нужно это как массив?Если вам нужно только перебрать его, вы можете просто использовать Enumerable.Range
напрямую, чтобы получить IEnumerable<int>
, которому никогда не нужно фактически хранить все числа в памяти одновременно.