在c#中,如果需要陣列的長度和元素的個數隨著程式的執行不斷改變,就可以使用arraylist類,該類是乙個可以動態增減成員的陣列。
arraylist類實際上是array類的優化版本。
arraylist只能定義一維陣列,arrays可以定義多維陣列。
arraylist的下限始終為0,array可以定義自己的下限。
arraylist的元素都是object型別的,因此需要進行裝箱和拆箱操作,記憶體分配的代價很高,而array的元素通常是特定型別的。
arraylist的元素個數可以自動擴充套件,array的元素個數是固定的。
arraylist具有新增、刪除、插入、移動和複製等方法。
usingsystem;
using
system.collections.generic;
using
system.linq;
using
system.text;
using system.collections; //
匯入arraylist的命名空間
namespace
test
console.writeline();
console.writeline(
"實際包含的陣列元素個數:
" +alist.count);
console.writeline(
"目前能夠包含的陣列元素的最多個數:
"+alist.capacity);
alist.insert(
1, "
c#"); //
在指定的索引位置插入元素c#
console.write("
在索引值為1的位置插入:");
foreach (object obj in
alist)
console.writeline();
console.writeline(
"實際包含的陣列元素個數:
" +alist.count);
console.writeline(
"目前能夠包含的陣列元素的最多個數:
"+alist.capacity);
alist.add("。
");console.writeline(
"新增。");
console.writeline(
"目前能夠包含的陣列元素的最多個數:
"+alist.capacity);
alist.add(
"---
"); //
集合容量不夠時,會出現位數的變化
console.writeline("
新增---");
console.writeline(
"實際包含的陣列元素個數:
" +alist.count);
console.writeline(
"目前能夠包含的陣列元素的最多個數:
"+alist.capacity);
//用索引方式獲取集合元素值
console.writeline("
3號索引的:
" + alist[3
]);
//利用contains方法,查詢集合中是否包含「?」
console.writeline("
陣列中是否包含?:
" + alist.contains("?"
)); console.write(
"經過前面操作後的資料元素:");
foreach (object obj in
alist)
console.writeline();
console.writeline(
"實際包含的陣列元素個數:
" +alist.count);
console.writeline(
"目前能夠包含的陣列元素的最多個數:
"+alist.capacity);
alist.remove("。
"); //
移除集合中的「。」元素
alist.remove("
?"); //
移除集合中的「?」元素
console.writeline("
沒有包含?,減少1個元素,容量不變");
foreach (object obj in
alist)
console.writeline();
console.writeline(
"實際包含的陣列元素個數:
" +alist.count);
console.writeline(
"目前能夠包含的陣列元素的最多個數:
"+alist.capacity);
alist.removeat(
3); //
移除3號索引位的元素
console.write("
移除3號索引位的元素:");
foreach (object obj in
alist)
console.writeline();
console.writeline(
"實際包含的陣列元素個數:
" +alist.count);
console.writeline(
"目前能夠包含的陣列元素的最多個數:
"+alist.capacity);
alist.trimtosize();
//縮減容量
console.writeline("
目前能夠包含的陣列元素的最多個數:
"+alist.capacity);
alist.clear();
//清除arraylist中的所有元素
console.writeline("
清除arraylist中的所有元素後:");
console.writeline(
"實際包含的陣列元素個數:
" +alist.count);
console.writeline(
"目前能夠包含的陣列元素的最多個數:
"+alist.capacity);
alist.trimtosize();
//再次縮減容量
console.writeline("
再次縮減容量後,能夠包含的陣列元素的最多個數:
" +alist.capacity);
console.readline();}}
}
原部落格:
關於C 動態定義陣列
首先 為什麼需要動態定義陣列呢?這是因為,很多情況下,在預編譯過程階段,陣列的長度是不能預先知道的,必須在程式執行時動態的給出 但是問題是,c 要求定義陣列時,必須明確給定陣列的大小,要不然編譯通不過 如 int array 5 正確 int i 5 int array i 錯誤 因為在編譯階段,編...
C 中動態陣列 陣列引數
一 c 中的動態陣列 寫程式的時候,我在想動態陣列怎麼寫,new int,方括號中可以寫常量嗎,真是鬱悶,一些基本的知識都不記得,還是多練練吧。int pia new int 10 陣列的維數可以是任意的複雜表示式。delete pia 動態分配陣列時,陣列元素為類型別呼叫預設建構函式,內建型別的不...
C 中的動態多維陣列
前言 c 的new操作符是該語言乙個非常好的語法特性,然而實際使用中卻發現new操作符有不少限制,為突出的一點便是用new操作符分配多維陣列空間時,不能讓陣列的每一維都動態可變。本文將對此提出乙個簡單直觀的解決方案,在乙個實際問題的簡化模型中加以說明,並以此釋清許多初學者對c 中new操作符與多維陣...