c#中的陣列是可以動態分配長度的,實現動態陣列有以下幾種途徑,這裡說的動態陣列包括動態分配大小和動態增加資料.
先來看原始陣列:
int m = 5;
int array = newint[m];
array[0] = 2;
label1.text = array[0].tostring() + " + " +array.length.tostring();
結果的輸出自然是 2 + 5;
動態分配:
1:m++;
array = newint[m];//相當於重新初始化,原來的值被沖掉了
label2.text =array[0].tostring() + " + " + array.length.tostring();
結果輸出自然是 0 + 6;
2:
m++;
array.resize(ref array,m);
label2.text =array[0].tostring() + " + " + array.length.tostring();
結果輸出自然是 2 + 6;
3:再有就是通過arraylist的方法
第1種方案適合能夠事先能從某處讀出來長度的情況;第2,3種方案最適合在事先不知道資料長度究竟有多少,只能來乙個算乙個的情況,個人感覺,這才是動態陣列真正的用途,也就是能夠隨著資料的增加而自動擴容。
在這方面arraylist毫無疑問是首選,能夠真正實現這個功能.
arraylist
al =
newarraylist();
al.add(
newdata
);//
單個新增
如果增加的是同一型別的資料,用array.resize()也是能夠實現的:
if(產生了新資料)//增加個判斷
雖然有同樣的效果,但本質上是有差異的.arraylist是真正的在變長.而
system.array.resize這個泛型方法是重新建立新設定大小的陣列,用的是舊陣列的元素初始化。隨後以前的陣列就廢棄!也就是說並不是在原先的基礎上擴容,而是新建了乙個.但是無論如何在表面上看來確實實現了我們想要的功能.
C 動態陣列
原 1.變長一維陣列 這裡說的變長陣列是指在編譯時不能確定陣列長度,程式在執行時需要動態分配記憶體空間的陣列。實現變長陣列最簡單的是變長一維陣列,你可以這樣做 1 檔名 array01.cpp 2 include 3 using namespace std 4 int main 5 注意int p ...
c 動態陣列
在建立動態陣列的過程中我們要遵循乙個原則,那就是在建立的時候從外層往裡層,逐層建立 而釋放的時候從裡層往外層,逐層釋放。這個話你讀了可能理解並不深刻,不過不要急,接下來我們看看兩段 一維動態陣列的建立 include include int main int n1,i int array print...
c 動態陣列
這學期學c 晚上有道程式設計題,比較坑,感覺要用動態陣列做,但實際就是要用靜態陣列,因為動態的反而更難了。用動態陣列的時候,發現自己只會建立一維的 int a new int 5 然後二維陣列怎麼創都忘記了,還是那句話 不寫 很容易 忘記。然後下面就給出幾個例子吧 cpp view plain co...