通过在C#中重复初始值来展开并填充数组?

时间:2013-02-28 00:54:26

标签: c# .net arrays

如果我有一个数组1:1,21,30

当前大小为3

如果我想将数组扩展为n,并通过重复初始数组中的值来填充额外的索引,我该如何在C#中执行?

例如,假设n = 8,输出应该是值为1,21,30,1,21,30,1,21的数组

3 个答案:

答案 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()方法添加多个值。