C#一維數(shù)組和多維數(shù)組淺談
在向大家詳細(xì)介紹C#多維數(shù)組之前,首先讓大家了解下C#一維數(shù)組,然后全面介紹C#多維數(shù)組。
C#一維數(shù)組和C#多維數(shù)組
數(shù)組是程序設(shè)計(jì)中常用的一種數(shù)據(jù)結(jié)構(gòu),和C/C++一樣,C#中的數(shù)組索引從0開始,且其元素類型必須相同,當(dāng)然由于多態(tài)等帶來(lái)的隱式轉(zhuǎn)型則另當(dāng)別論。C#中的數(shù)組可以分為C#一維數(shù)組、C#多維數(shù)組以及參差數(shù)組(Ragged Array),它們各自的聲明、初始化以及元素索引都有不同的語(yǔ)法規(guī)定。C#同C++數(shù)組的一個(gè)顯著不同是它由.NET通用語(yǔ)言運(yùn)行環(huán)境(CLR)保證其類型安全,可以在運(yùn)行時(shí)動(dòng)態(tài)創(chuàng)建和擴(kuò)充容量。
C#一維數(shù)組聲明和初始化有特定的語(yǔ)法,我們通常將它們放在一起,看下面的代碼:
- //聲明的同時(shí)初始化
- int[] MyIntArr1=new int[] {1,2,3};
- //聲明并初始化1×3數(shù)組
- int[] MyIntArr2=int{1,2,3};
- //簡(jiǎn)化形式的聲明并初始化
- //聲明與初始化分
- int[] MyIntArr3;
- MyIntArr3=new int[]{1,2,3};
- //不可以單用簡(jiǎn)化形式的初始化
- //初始化中可以指定數(shù)組的容量
- int[] MyIntArr4=new int[3]{1,2,3};
- //不可以: int[3] MyIntArr4=new int[3]{1,2,3}
注意這里聲明部分的括號(hào)([])緊跟在數(shù)組元素類型(如int)之后,然后才是變量名。C#不支持傳統(tǒng)C++那樣的“int a[]={1,2,3,4,5}”聲明方式。等號(hào)右面是初始化部分,我們可以看到C#支持兩種初始化表達(dá)形式,其中后者是前者的簡(jiǎn)化,但在聲明與初始化分開的情況下,不能再采用簡(jiǎn)化形式的初始化。C#數(shù)組的初始化部分可以在括號(hào)([])中指定數(shù)組的容量(其中必須為整數(shù)常量或常數(shù),當(dāng)然必須和后面初始化的數(shù)組元素個(gè)數(shù)匹配),數(shù)組聲明部分不可以包含數(shù)組的容量。
C#支持C#多維數(shù)組,其初始化和C++一樣都采用嵌套的大括號(hào)來(lái)表達(dá),但它的聲明和C++有所不同,看下面的代碼與注釋:
- //聲明的同時(shí)初始化
- int[,] MyMulArr1=new int[,]{{1,2,3},{2,4,6}};//聲明并初始化2×3數(shù)組
- int[,] MyMulArr2={{1,2,3},{2,4,6}};
- //簡(jiǎn)化形式的初始化
- //聲明與初始化分
- int[,] MyMulArr3;
- MyMulArr3=new int[,]{{1,2,3},{2,4,6}};
- //初始化中可以指定數(shù)組的容量
- int[,] MyMulArr4=new int[2,3]{{1,2,3},{2,4,6}};
- //不可以: int[2,3] MyMulArr5=new int[2,3]{{1,2,3},{2,4,6}};
C#在括號(hào)中用逗號(hào)(,)分割的方法來(lái)聲明C#多維數(shù)組,多個(gè)括號(hào)(如int[][] a)的表達(dá)方式在C#中用來(lái)表示參差數(shù)組。C#多維數(shù)組的聲明和初始化與C#一維數(shù)組有相似的規(guī)定,我們可以從上面的例子中看出來(lái)。
【編輯推薦】