-3

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

当前大小为 3

如果我想将数组扩展为大小 n,并通过重复初始数组中的值来填充额外的索引,我该如何在 C# 中做到这一点?

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

4

3 回答 3

1

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

int initialSize = myArr.Length
Array.Resize(ref myArr, 8);
for(int i = initialSize;i< myArr.Length; i++)
{
   myArr[i] = myArr[ i % initialSize ];
}
于 2013-02-28T00:58:07.897 回答
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];
}

注意:我在我的手机上写了这个,所以对任何小的语法问题表示歉意。

于 2013-02-28T01:01:37.127 回答
0

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

于 2013-02-28T00:58:30.380 回答