2013-02-28 33 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]; 
} 

注意:我在我的單元格上寫了這個,所以對於任何小的語法問題都道歉。