how to inset a new array to my jagged array

允我心安 提交于 2019-12-20 04:26:13

问题


hello i will much apreciate any help.

ok let's see, first i have declare a jagged array like this and the next code

int n=1, m=3,p=0;

int[][] jag_array =new[n];

now my jagged array will have 1 array inside, next y have to fill the array like this:

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)

now my jagged array looks like this(also insert some data for this example):

jag_array[0][0]=4
jag_array[0][1]=2

now my question how can i insert a new array whit out losing my previos data if i declare

jag_array[p+1]= new double[car];

i will lose the data from the previos one, i will like to look something likes this:

jag_array[0][0]=4
jag_array[0][1]=2
jag_array[1][0]=5
jag_array[1][1]=6

the reason i did not declare from the begining 2 array is beacuse i dont know how many i am going to use it could be just 1 or 20 and every time i have to create a new array whit out losing the previous data that has been already fill, thaks all for the attention,


回答1:


The size of an array, once created, is by definition invariable. If you need a variable number of elements, use a List<T> - in your case, probably a List<int[]>.

The only alternative solution would be to created a new array with the new size (and assign that to your jag_array variable) and copy all the previous elements from your old array into the new array. That is unnecessarily complicated code when you can just use List<T>, but if you cannot use List<T> for any reason, here is an example:

// 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


来源:https://stackoverflow.com/questions/11767023/how-to-inset-a-new-array-to-my-jagged-array

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!