I have a large int[] array and a much smaller int[] array. I want to fill up the large array with values from the small array, by repeat copying the small array into the large array until it is full (so that large[0] = large[13] = large[26] … = small[0] etc.). I already have a simple method:
int iSource = 0; for (int i = 0; i < destArray.Length; i++) { if (iSource >= sourceArray.Length) { iSource = 0; // reset if at end of source } destArray[i] = sourceArray[iSource++]; }
But I need something more elegant, and hopefully faster.
Interestingly the winning answer is the slowest with the provided source array!
The solution I was going to propose was
but when i tested the perf over 100000 iterations using the inputs in the answering question it performed worse than the questioners loop.
here is the output from my little test app