你好,我将非常感谢任何帮助。
好吧,让我们看看,首先我声明了一个像这样的锯齿状数组和下一个代码
int n=1, m=3,p=0;
int[][] jag_array =new[n];
现在我的锯齿状数组内部将有 1 个数组,接下来必须像这样填充数组:
car=2;
do
{
jag_array[p]= new double[car];
for (int t = 0; t < carac; t++)
{
jag_array[p][t] = variableX;
}
p=p+1
}
while(p==0)
现在我的锯齿状数组看起来像这样(还为此示例插入一些数据):
jag_array[0][0]=4
jag_array[0][1]=2
现在我的问题是,如果我声明,如何插入新数组而不丢失以前的数据
jag_array[p+1]= new double[car];
我将丢失前一个数据,我希望看起来像这样:
jag_array[0][0]=4
jag_array[0][1]=2
jag_array[1][0]=5
jag_array[1][1]=6
我没有从开头声明 2 个数组的原因是因为我不知道我要使用多少个数组,它可能只是 1 或 20 个,而且每次我都必须创建一个新数组而不丢失之前已经存在的数据填补,感谢大家的关注,
数组的大小一旦创建,根据定义就是不变的。如果您需要可变数量的元素,请使用List<T>- 就你而言,可能是List<int[]>
.
唯一的替代解决方案是创建一个具有新大小的新数组(并将其分配给您的jag_array
变量)并将旧数组中的所有先前元素复制到新数组中。当您可以使用时,这是不必要的复杂代码List<T>
,但如果你不能使用List<T>
出于任何原因,这里有一个例子:
// increase the length of jag_array by one
var old_jag_array = jag_array; // store a reference to the smaller array
jag_array = new int[old_jag_array.Length + 1][]; // create the new, larger array
for (int i = 0; i < old_jag_array.Length; i++) {
jag_array[i] = old_jag_array[i]; // copy the existing elements into the new array
}
jag_array[jag_array.Length - 1] = ... // insert new value here
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)