C# resize multi dimension array -
how can resize dimensions of multi-dimension (int
, char
, string
, double
, etc.) array?
i made works, works array
class:
private array resizearray(object arr, int[] boyutlari) { array myarray = ((array)arr); type type = arr.gettype().getelementtype(); array _arr = array.createinstance(type, boyutlari); int[] arrmin = new int[boyutlari.getlength(0)]; int sayboyut = 0; foreach (int in boyutlari) { arrmin[sayboyut] = math.min(i, myarray.getlength(sayboyut)); sayboyut++; } int tumolasiliklaradet = 1; foreach (int intmin in arrmin) { tumolasiliklaradet *= intmin; } long[] arrdegerler = new long[myarray.rank]; (int iy = 0; iy < tumolasiliklaradet; iy++) { (int ix = 0; ix < myarray.rank; ix++) { int toplamsagolasilik = 1; (int isagsay = ix + 1; isagsay < myarray.rank; isagsay++) toplamsagolasilik *= arrmin[isagsay]; arrdegerler[ix] = (iy / toplamsagolasilik) % arrmin[ix]; } var ss = ((array)arr).getvalue(arrdegerler); _arr.setvalue(ss, arrdegerler); } return _arr; }
usage:
public array arrklasorlerdosyalar = array.createinstance(typeof(string), 1, 2); int[] boyutlar = new int[] { 10 /*1th dimension length*/, 2 /*2th dimension length*/}; arrklasorlerdosyalar = resizearray((object)arrklasorlerdosyalar, boyutlar);
Comments
Post a Comment