陣列是用於儲存多個相同型別資料的集合。
陣列是一種資料結構,它可以包含同一種資料型別的多個元素。宣告陣列
先定義陣列中元素的資料型別,其後是和變數名,例如:
int
intarray;
//宣告乙個整形一維陣列
初始化陣列
宣告陣列後,就必須為陣列分配記憶體。陣列是引用資料型別,故必須為它分配堆上的記憶體。為此,應使用new運算子。例如:
intarray =
newint[4
];//分配了能儲存4個int資料型別的記憶體空間(託管堆)
記憶體分配如下圖:
注:1.可以在宣告資料的同時初始化:
int
intarray =
newint[4
];
2.可以用陣列初始化器為陣列每個元素賦初值:
int
intarray =
newint[4
];
3.使用陣列初始化器為陣列每個元素賦初值時,可以不指定陣列大小,因為編譯器會自動統計元素個數:
int
intarray =
newint
;
4.使用c#編譯器還可以有更簡化的形式,使用花括號可以同時宣告和初始化陣列:
int
intarray =
;
訪問陣列元素
素組只支援有整形元素的索引器,通過索引器傳遞元素編號訪問陣列元素。索引器總是以0開頭,表示第乙個元素。例:
int
intarray =
;int n1 = intarray[0]
;//n1 = 1;
int n2 = intarray[1]
;//n2 = 2;
intarray[2]
=7;// 將intarray陣列的第三個元素賦值為7
如果使用的索引器值(大於陣列的長度),會丟擲indexoutofrangeexception型別的異常陣列遍歷
1.使用for迴圈遍歷陣列
for
(int i =
0; i < intarray.length; i++
)
2.使用foreach遍歷陣列
foreach
(var item in intarray)
定義乙個person類,裡面包含firstname和lastname兩個屬性。
public
class
person
public
string firstname
public
string lastname
}
新建person的陣列:
person[
] person =
newperson[2
];
注:如果陣列中的元素是引用資料型別,就必須為每個元素分配記憶體;如果使用 了陣列中未分配記憶體的元素,或丟擲nullreferenceexception型別的異常。
為person陣列元素分配記憶體:
person[0]
=new
person
("san"
,"zhang");
person[1]
=new
person
("si"
,"li"
);
person陣列中的物件在託管堆中的情況:
如圖二維陣列的數學表示法:
在c#宣告這個二維陣列:
int[,
] twodim =
newint[3
,3];
twodim[0,
0]=1
;twodim[0,
1]=2
;twodim[0,
2]=3
;twodim[1,
0]=4
;twodim[1,
1]=5
;twodim[1,
2]=6
;twodim[2,
0]=7
;twodim[2,
1]=8
;twodim[2,
2]=9
;
注:宣告陣列後,就不能修改其階數了
也可用如下的方式進行初始化二維陣列:
int[,
] twodim =,,
};
注:使用陣列初始化器是必須對每個元素進行初始化,不能把某些元素的初始化放在以後完成。
鋸齒陣列和二維陣列比較
二維陣列的大小類似於矩形
矩形陣列的大小比較靈活,每行可以有不同的大小
鋸齒陣列宣告及初始化
int
jagged =
newint[3
];jagged[0]
=new
int[1]
;jagged[1]
=new
int[2]
;jagged[2]
=new
int[3]
;
鋸齒陣列遍歷int i =
0;foreach
(var item in jagged)
,column: ,value: ");
++j;
}++i;
}
輸出結果:
row:
0,column:0,
value:1
row:
1,column:0,
value:1
row:
1,column:1,
value:0
row:
2,column:0,
value:1
row:
2,column:1,
value:1
row:
2,column:2,
value
:1
黑馬程式設計師 C 陣列和Array類
c 陣列和array類的關係 在c 中array類是所有陣列的基類,msdn上的解釋為 提供一些方法,用於建立 處理 搜尋陣列並對陣列進行排序,從而充當公共語言執行時中所有陣列的基類。最常見的屬性是 length 獲得乙個 32 位整數,該整數表示 array 的所有維數中元素的總數。下面的 將nu...
C 模板類vector和array
模板類vector和array是陣列的替代品。1.模板類vector 模板類vetor類似於string類,也是一種動態陣列。可以在執行階段設定vector物件的長度,可在末尾附加新資料,還可在中間插入新資料。基本上,它是使用new建立動態陣列的替代品。實際上,vector類確實使用new和dele...
ruby學習 陣列類(Array)
1,陣列的建立 1 使用 來建立陣列 num 2,3,4,5,6 str a d c 2 使用array.new 來建立 3 使用 w與 i來建立 2,to a方法。對雜湊物件使用to a方法,結果會得到相應的陣列的陣列。3,split方法 對用逗號或者空白間隔的字串使用split方法,也可以建立陣...