2013-02-28 29 views
-3

如果我有一个ARRAY1:1,21,30通过在C#中重复初始值来展开并填充数组?

当前大小是3

如果我想展开数组大小n,并且通过从初始阵列重复值填充额外索引,我怎样才能在C#中做到这一点?

例如,假设N = 8,出放应与值1,21,30,1,21,30,1阵列,21

+2

为什么不使用列表? – 2013-02-28 00:55:18

+0

你尝试过什么吗? – 2013-02-28 00:56:34

回答

1

完全未经测试,但这应该让你开始:

int initialSize = myArr.Length 
Array.Resize(ref myArr, 8); 
for(int i = initialSize;i< myArr.Length; i++) 
{ 
    myArr[i] = myArr[ i % initialSize ]; 
} 
0

使用通用的List<T>来存储您的数组,以允许它根据需要增长。您可以使用其AddRange()方法添加多个值。

+0

如果他只调整一次,那么使用List还是有意义的吗? – 2013-02-28 00:58:56

+0

它可能。这真的取决于OP的要求。 – Bernard 2013-02-28 01:00:04

1

如果您使用模数,您可以在构建最终数组时找到最初数组中的正确元素。

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]; 
} 

注意:我在我的单元格上写了这个,所以对于任何小的语法问题都道歉。