Другой способ - это Array.Copy, например:
int[] source = new int[6] { 0 + length, 1 + length, 2 + length, 3 + length, 2 + length, 1 + length });
//
// Assuming the chunk_indices has 6 elements already allocated.
//
Array.Copy(source, chunk_indices, 6);
Внутренняя реализация AddRange обычно вызывает Array.Copy или CopyToСледовательно, AddRange не может работать лучше, чем обычный Array.Copy.
Дальнейшие исследования выявили еще один вариант, более быстрый, чем предыдущий:
// Copy the first 24 bytes from source to chunk_indices
Buffer.BlockCopy(source, 0, chunk_indices, 0, 6 * sizeof(int));