假設有乙個規定長度的陣列,如何擴容呢?最容易想到的是通過如下方式擴容:
class program
;
arrs[5] = 6;
}
}報錯:未處理indexoutofranageexception,索引超出了陣列界限。
□ 建立乙個擴容的臨時陣列,然後賦值給原陣列,使用迴圈遍歷方式
staticvoid main(string args)
;
int temp = newint[arrs.length + 1];
//遍歷arrs陣列,把該陣列的元素全部賦值給temp陣列
for (int i = 0; i < arrs.length; i++)
//把臨時陣列賦值給原陣列,這時原陣列已經擴容
arrs = temp;
//給擴容後原陣列的最後乙個位置賦值
arrs[arrs.length - 1] = 6;
foreach (var item in arrs)
console.readkey();
}□ 建立乙個擴容的臨時陣列,然後賦值給原陣列,使用array的靜態方法
像這種平常的陣列間的拷貝,array類肯定為我們準備了靜態方法:array.copy()。
staticvoid main(string args)
;
int temp = newint[arrs.length + 1];
array.copy(arrs, temp, arrs.length);
//把臨時陣列賦值給原陣列,這時原陣列已經擴容
arrs = temp;
//給擴容後原陣列的最後乙個位置賦值
arrs[arrs.length - 1] = 6;
foreach (var item in arrs)
console.readkey();
}□ 使用array的靜態方法擴容
但是,拷貝來拷貝去顯得比較繁瑣,我們也可以使用array.resize()方法給陣列擴容。
staticvoid main(string args)
;
array.resize(ref arrs, arrs.length + 1);
//給擴容後原陣列的最後乙個位置賦值
arrs[arrs.length - 1] = 6;
foreach (var item in arrs)
console.readkey();
}
總結:陣列擴容優先考慮使用array的靜態方法resize,其次考慮把乙個擴容的、臨時的陣列賦值給原陣列。
給陣列擴容的幾種方式
假設有乙個規定長度的陣列,如何擴容呢?最容易想到的是通過如下方式擴容 class program arrs 5 6 報錯 未處理indexoutofranageexception,索引超出了陣列界限。建立乙個擴容的臨時陣列,然後賦值給原陣列,使用迴圈遍歷方式 static void main str...
給二維陣列指標擴容
參考 參考 參考 postgres全部由純c編寫,現在要給乙個指標陣列賦值,但是因為由陣列上限要求,所以就和vector那樣,需要動態的給二維陣列擴容。如果寫了擴容方法,如果對函式中的指標重新分配記憶體,就會導致函式中的指標和實參變化。如下 include include const int max...
陣列的擴容
陣列是固定大小的,不能改變長度,要想達到陣列擴容的目的,就只能把當前陣列複製到乙個更長長度的陣列中 使用arrays.copyof 方法 原始碼如下 public static short copyof short original,int newlength 可以看出,內部呼叫了system.ar...