如果我有一个数组1:1,21,30
当前大小为3
如果我想将数组扩展为n,并通过重复初始数组中的值来填充额外的索引,我该如何在C#中执行?
例如,假设n = 8,输出应该是值为1,21,30,1,21,30,1,21的数组
答案 0 :(得分:1)
完全未经测试,但这应该让你开始:
int initialSize = myArr.Length
Array.Resize(ref myArr, 8);
for(int i = initialSize;i< myArr.Length; i++)
{
myArr[i] = myArr[ i % initialSize ];
}
答案 1 :(得分:1)
如果使用modulo,则可以在构建最终数组时在初始数组中找到正确的元素。
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];
}
注意:我在我的手机上写了这个,所以对任何轻微的语法问题表示歉意。
答案 2 :(得分:0)
使用通用List<T>
存储您的数组,以允许它根据需要增长。您可以使用其AddRange()方法添加多个值。