C#參差數(shù)組簡單描述
C#數(shù)組有很多值得學(xué)習(xí)的地方,這里我們主要介紹C#參差數(shù)組,包括介紹C#參差數(shù)組的聲明與初始化等方面
C#參差數(shù)組
C#參差數(shù)組又稱數(shù)組的數(shù)組(Array of Array),它表面上類似于上面講到的多維數(shù)組,但它本質(zhì)上仍是一個一維數(shù)組,只不過它的元素又是一個數(shù)組(可以是一維數(shù)組、多維數(shù)組或者C#參差數(shù)組)。C#參差數(shù)組一個顯著的特性是作為它的元素的數(shù)組階數(shù)可以不同,非常形象地表現(xiàn)為“參差不齊”狀。由于本質(zhì)仍是一個一維數(shù)組,C#參差數(shù)組的聲明與初始化和一維數(shù)組的規(guī)定一樣,只是由于在“感覺”上老把它假定為一個多維數(shù)組而導(dǎo)致在這里很容易犯錯,看下面的代碼與注釋:
- //聲明的同時初始化
- int[][] MyRagArr1=new int[][]{new int[]{1,2,3},new int[]{2,4,6}};
- //聲明并初始化二維數(shù)組,其元素為三維數(shù)組
- int[][] MyRagArr2={new int[]{1,2,3},
- new int[]{2,4,6}};//簡化形式的初始化
- //不可以用多維數(shù)組的初始化語句:int[][] MyRagArr2={{1,2,3},{2,4,6}};
- //聲明與初始化分開
- int[][] MyRagArr3;
- MyRagArr3=new int[2][];//初始化一維數(shù)組,
- //不可以這樣:MyRagArr3=new int[2][3];
- MyRagArr3[0]=new int[]{1,2,3};
- //初始化數(shù)組元素
- MyRagArr3[1]=new int[]{2,4,6};
- //初始化數(shù)組元素
- //初始化中可以指定數(shù)組的容
- int[][] MyRagArr4=new int[2][]{new int[]{1,2,3},new int[]{2,4,6}};
- //不可以: int[2][] MyRagArr=new int[2][]{new int[]{1,2,3},new int[]{2,4,6}};
- //也不可以: int[][] MyRagArr4=new int[2][3]{new int[]{1,2,3},new int[]{2,4,6}};
- //一個典型的“參差”數(shù)組
- int[][] MyRagArr5=new int[3][];
- MyRagArr5[0]=new int[]{1,2,3,4,5};
- MyRagArr5[1]=new int[]{1,2,3};
- MyRagArr5[2]=new int[]{1,2,3,4,5,6,7,8};
C#采用多個括號并列的方式來表達(dá)C#參差數(shù)組(數(shù)組的數(shù)組)。上面的代碼和注釋詳細(xì)地展示了C#參差數(shù)組在聲明和初始化時的用法。大多數(shù)行為和前面從一維數(shù)組中得來的經(jīng)驗相同,但只有一點(diǎn)需要指出:為什么在指定數(shù)組容量的時候只能指定其第一個括號中的常量或常數(shù),而不可以指定其后面括號中的容量?這可以從C#參差數(shù)組的本質(zhì)——一維數(shù)組上找到答案。在對C#參差數(shù)組初始化的時候,實際上是在初始化一維數(shù)組中的各個元素。根據(jù)一維數(shù)組的規(guī)定,只能指定這些元素的個數(shù),即一維數(shù)組的容量,也就是C#參差數(shù)組第一個括號中的常量或常數(shù)。
【編輯推薦】