如果我有一個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