C#中的循环数组
Round robin array in C#
我正在尝试制作循环数组。如果我在一个循环中向这个数组提供一堆值并且我到达了数组的末尾(假设它的长度为 10),我将如何循环到第一个索引?
循环时,使用模代数计算数组的索引:
myArray[index % myArray.Length]
样本
int[] myArray = new int[10];
// Round robin feeding; trying to put 0, 1, .. 13 into int[10]:
for (int i = 0; i < 14; ++i) // note 14 > 10
myArray[i % myArray.Length] = i; // i % myArray.Length - modular arithmetics
// Test
// 10, 11, 12, 13, 4, 5, 6, 7, 8, 9
// note that first 4 values (10, 11, 12, 13) are overriden
Console.Write(String.Join(", ", myArray));
我正在尝试制作循环数组。如果我在一个循环中向这个数组提供一堆值并且我到达了数组的末尾(假设它的长度为 10),我将如何循环到第一个索引?
循环时,使用模代数计算数组的索引:
myArray[index % myArray.Length]
样本
int[] myArray = new int[10];
// Round robin feeding; trying to put 0, 1, .. 13 into int[10]:
for (int i = 0; i < 14; ++i) // note 14 > 10
myArray[i % myArray.Length] = i; // i % myArray.Length - modular arithmetics
// Test
// 10, 11, 12, 13, 4, 5, 6, 7, 8, 9
// note that first 4 values (10, 11, 12, 13) are overriden
Console.Write(String.Join(", ", myArray));