陣列是一種資料結構,他使用同一型別的多個物件,其元素在記憶體中連續存放。c#用特殊的記號如中括號""宣告和使用陣列。
陣列的宣告:
先定義陣列中元素的型別,其後是乙個方括號和乙個變數名,如:
int myarray;
陣列的初始化
:
陣列是引用型別,必須給它分配堆上的記憶體。對此,應使用
new運算子,並且指定陣列中元素的型別和元素的數量來初始化陣列的變數。如:
myarray=new int[4];
在指定了陣列的大小後就不能重新設定陣列的大小。如果事先不知道陣列中應包含多少個元素,得使用集合。
初始化方式:
(1)int myarray;myarray=new int[4];
(2)int myarray=new int[4];
(3)int myarray=new int[4];//
陣列初始化器只能在宣告陣列變數時使用,不能在宣告陣列之後使用。
(4)int myarray=new int;//
不指定陣列的大小。編譯器會自動計算元素個數。
(5)int myarray=;//
簡化形式,編譯生成的**與前
4種相同。
訪問陣列元素:
(1)通過索引器訪問:
int myarray=new int;
int v1=myarray[0];//
讀取第乙個元素
int v2=myarray[1];//
讀取第二個元素
myarray[3]=44;//
為第四個元素賦值
//若使用錯誤的索引值
(訪問不存在的元素
),則丟擲
indexoutofrangeexception
異常(2)
不知道陣列元素個數的訪問方式:
for(int i=0;i
(3)使用
foreach
語句訪問:
foreach(int val in myarray)
//foreach
主要通過
ienumerable
和ienumerator
介面實現。
使用引用型別:
不但能夠宣告預定義型別的陣列,還可以宣告定製型別的陣列。
注意:如果陣列中的元素是引用型別,就必須為每個陣列元素分配記憶體(分配記憶體即物件例項化)。若使用了陣列中未分配記憶體的元素,則會丟擲
nullreferenceexception
型別的異常。
宣告方式與預定義型別的宣告方式一樣,初始化方式則必須使用例項化後的自定義類。如:
person mypersons=;
//person
為乙個使用者自定義類
// person(「f1」,」l1」)
為person
類的建構函式,第一引數表示
firstname,
第二個引數表示
lastname
多維陣列:
申明二維陣列時需要在括號中加上乙個逗號。陣列在初始化時應指定每一維的大小(也稱為階)。訪問陣列則採用兩個整數作為索引器來訪問。如:
int[,] twodim=new int[3,3];//
二維陣列宣告,陣列宣告之後,不能修改其階數
twodim[0,0]=1;//
二維陣列訪問
初始化也可以採用下列方式:
int[,] twodim=,,};
使用陣列初始化器時,必須初始化陣列的每個元素,不能遺漏任何元素。
三維陣列宣告和初始化如下:
int[,,] threedim=,},,},,}};
鋸齒陣列:
二維陣列的大小是矩形的。而鋸齒陣列的大小設定比較靈活,在鋸齒陣列中,每一行都可以有不同的大小。
鋸齒陣列又稱陣列中的陣列
在宣告鋸齒陣列時,要一次放置開閉括號。在初始化鋸齒資料時,先設定該陣列包含的行數。定義各行中元素個數的第二個括號設定為空,以為這類陣列的每一行包含不同的元素數。之後為每一行指定行中的元素個數,如:
int jagged=new int[3];//
二維陣列宣告使用的是
int[,]
,注意區別
jagged[0]=new int[2];
jagged[1]=new int[6];
jagged[2]=new int[3];
迭代鋸齒陣列中所有元素的**可以使用巢狀
for迴圈。在外層
for迴圈中,迭代每一行,內層的
for迴圈迭代一行中的每個元素:
for(int row=0;row
}
C 解析JSON陣列
待解析json陣列 函式 1 public static newtonsoft.json.linq.jarray gettojsonlist string json 2實現 搞定 我使用的是這個 只需將json放到這個 自動給我們生成實體類即可 實體類 1 using system 2 using ...
C語言多維陣列,結構體解析
首先講解乙個誤區 我們都知道a代表陣列的首位址,a也是陣列的位址,所以它們輸出的結果是一樣的,那麼為什麼a 1 和 a 1的結果不一樣呢?因為a代表的是陣列的首位址,也就是a 0 的位址,乙個int 型別的指標指向a 0 a代表是陣列的位址,也就是a 5 這個陣列的位址,所以這個是 int 5 型別...
C 中的物件陣列詳細解析
類是物件的抽象,我們可以使用乙個類來定義很多的物件,然後每個物件都有自己的屬性。當我們使用類來定義很多相同結構的物件的時候,我們可以採取物件陣列的方法。例如,乙個班有50個學生,我們定義了乙個學生類,該類的學生具有相同的資料成員和成員函式,我們就可以定義乙個這樣的陣列。複製 如下 student s...