假设我有一个整数序列,从 0(总是从 0 开始)到 3。现在,我有一个整数数组,它将保持这些序列一个接一个地循环,从某个点开始。例如:
一个 10 个元素的数组,序列是 0 到 3,从 2 开始,应该产生 2、3、0、1、2、3、0、1、2、3。
一个包含 5 个元素的数组,从 0 到 5 的序列,从 5 开始,应该产生 5、0、1、2、3。
一个由 5 个元素组成的数组,序列从 0 到 10,从 3 开始,应该产生 3、4、5、6、7。
我正在遭受大脑冻结!如果您知道数组大小、序列中的最大数量和起始值,那么创建此数组的最佳方法是什么?
我最好的尝试是:
private static int[] CreateIndexers(int index, int size, int players)
{
var indexers = new int[size];
for (int i = 0; i < size; i++)
{
var division = i / players;
var newInt = division + i >= players ? ((division + i) - players) : division + i;
indexers[i] = newInt;
}
return indexers;
}