如果我有一个ARRAY1:1,21,30通过在C#中重复初始值来展开并填充数组?
当前大小是3
如果我想展开数组大小n,并且通过从初始阵列重复值填充额外索引,我怎样才能在C#中做到这一点?
例如,假设N = 8,出放应与值1,21,30,1,21,30,1阵列,21
如果我有一个ARRAY1:1,21,30通过在C#中重复初始值来展开并填充数组?
当前大小是3
如果我想展开数组大小n,并且通过从初始阵列重复值填充额外索引,我怎样才能在C#中做到这一点?
例如,假设N = 8,出放应与值1,21,30,1,21,30,1阵列,21
完全未经测试,但这应该让你开始:
int initialSize = myArr.Length
Array.Resize(ref myArr, 8);
for(int i = initialSize;i< myArr.Length; i++)
{
myArr[i] = myArr[ i % initialSize ];
}
使用通用的List<T>
来存储您的数组,以允许它根据需要增长。您可以使用其AddRange()方法添加多个值。
如果他只调整一次,那么使用List还是有意义的吗? – 2013-02-28 00:58:56
它可能。这真的取决于OP的要求。 – Bernard 2013-02-28 01:00:04
如果您使用模数,您可以在构建最终数组时找到最初数组中的正确元素。
const int[] patternArray = { 1, 21 , 30 };
int[] array = new int[n];
for (int i = 0; i < n; i++){
int patternIdx = i % 3;
array[I] = patternArray[patternIdx];
}
注意:我在我的单元格上写了这个,所以对于任何小的语法问题都道歉。
为什么不使用列表? – 2013-02-28 00:55:18
你尝试过什么吗? – 2013-02-28 00:56:34