詳解c#中Array,ArrayList與List<T>的區(qū)別、共性與相互轉(zhuǎn)換_第1頁(yè)
詳解c#中Array,ArrayList與List<T>的區(qū)別、共性與相互轉(zhuǎn)換_第2頁(yè)
詳解c#中Array,ArrayList與List<T>的區(qū)別、共性與相互轉(zhuǎn)換_第3頁(yè)
詳解c#中Array,ArrayList與List<T>的區(qū)別、共性與相互轉(zhuǎn)換_第4頁(yè)
詳解c#中Array,ArrayList與List<T>的區(qū)別、共性與相互轉(zhuǎn)換_第5頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第詳解c#中Array,ArrayList與List<T>的區(qū)別、共性與相互轉(zhuǎn)換int[,]array=newint[,]{{1,2,3},{4,5,6},{7,8,9}};//定義一個(gè)3行3列的二維數(shù)組

introw=array.Rank;//獲取維數(shù),這里指行數(shù)

intcol=array.GetLength(1);//獲取指定維度中的元素個(gè)數(shù),這里也就是列數(shù)了。(0是第一維,1表示的是第二維)

intcol=array.GetUpperBound(0)+1;//獲取指定維度的索引上限,在加上一個(gè)1就是總數(shù),這里表示二維數(shù)組的行數(shù)

intnum=array.Length;//獲取整個(gè)二維數(shù)組的長(zhǎng)度,即所有元的個(gè)數(shù)

來(lái)源:C#中如何獲取一個(gè)二維數(shù)組的兩維長(zhǎng)度,即行數(shù)和列數(shù)?以及多維數(shù)組各個(gè)維度的長(zhǎng)度?

交錯(cuò)數(shù)組

交錯(cuò)數(shù)組是一個(gè)數(shù)組,其元素是數(shù)組,大小可能不同。交錯(cuò)數(shù)組有時(shí)稱為“數(shù)組的數(shù)組”。

交錯(cuò)數(shù)組不初始化就聲明的方式如下:

int[][]ccf;

ccf=newint[3][];

交錯(cuò)數(shù)組類似于python的多維數(shù)組,比較符合人類的直覺(jué),一個(gè)交錯(cuò)數(shù)組里面包含了多個(gè)數(shù)組。

可以采用類似下面的方式來(lái)聲明一個(gè)交錯(cuò)數(shù)組:

//定義多維數(shù)組要求每個(gè)維度的長(zhǎng)度都相同下面定義交錯(cuò)數(shù)組

int[][]jiaoCuo=newint[3][];//該數(shù)組是由三個(gè)一維數(shù)組組成的

上面聲明的數(shù)組是具有三個(gè)元素的一維數(shù)組,其中每個(gè)元素都是一維整數(shù)數(shù)組。

可使用初始化表達(dá)式通過(guò)值來(lái)填充數(shù)組元素,這種情況下不需要數(shù)組大小。例如:

jaggedArray[0]=newint[]{1,3,5,7,9};

jaggedArray[1]=newint[]{0,2,4,6};

jaggedArray[2]=newint[]{11,22};

初始化賦值

可在聲明數(shù)組時(shí)將其初始化,如:

int[][]jaggedArray2=newint[][]

newint[]{1,3,5,7,9},

newint[]{0,2,4,6},

newint[]{11,22}

};

獲取元素和單個(gè)賦值

可以用類似于jiaoCuo[1][1]來(lái)獲取單個(gè)元素的值,也可以用類似于jiaoCuo[1][1]=2;來(lái)為單個(gè)元素賦值。

可以采取類似于下面的方式來(lái)進(jìn)行循環(huán)賦值:

Console.WriteLine("交錯(cuò)數(shù)組循環(huán)賦值");

//先聲明交錯(cuò)數(shù)組中每一個(gè)數(shù)組的長(zhǎng)度

for(inti=0;ii++)

jiaoCuo[i]=newint[i+1];

//然后對(duì)交錯(cuò)數(shù)組中的每一個(gè)元素賦值

for(inti=0;ijiaoCuo.Length;i++)

Console.WriteLine($"交錯(cuò)數(shù)組的第{i+1}層");

for(intj=0;jjiaoCuo[i].Length;j++)

jiaoCuo[i][j]=i+j;

Console.WriteLine(jiaoCuo[i][j]);

}

方法和屬性

像數(shù)組這種儲(chǔ)存多個(gè)變量的數(shù)據(jù)結(jié)構(gòu),最重要的就是增查刪改、獲取長(zhǎng)度和數(shù)據(jù)類型轉(zhuǎn)換。Array因?yàn)閿?shù)組的特性,長(zhǎng)度不可改變,所以增查刪改只能有查和改。

Array類型用用類似于下面的方式進(jìn)行改操作:

vs[0]=12;//一維數(shù)組

duoWei[1,2]=3;//多維數(shù)組

jiaoCuo[1][1]=2;//交錯(cuò)數(shù)組

Array類型用類似于下面的方式進(jìn)行查操作:

int[]vs=newint[10];

vs[0]=12;

Console.WriteLine(Array.IndexOf(vs,12));//0

Console.WriteLine(vs.Contains(12));//True

獲取長(zhǎng)度

可以用類似于下面這種方式來(lái)獲?。?/p>

Console.WriteLine(vs.Length);

Console.WriteLine(vs.Count());

交錯(cuò)數(shù)組的Length是獲取所包含數(shù)組的個(gè)數(shù),多維數(shù)組的Length是獲取數(shù)組的元素的總個(gè)數(shù),多維數(shù)組GetLength(0)可以獲取最外圍數(shù)組的長(zhǎng)度,GetLength(1)可以獲得第二層數(shù)組的長(zhǎng)度。以此類推。

Array.ConvertAll()數(shù)據(jù)類型轉(zhuǎn)換

可以用Array.ConvertAllTInput,TOutput(TInput[],ConverterTInput,TOutput)來(lái)進(jìn)行數(shù)組類型的轉(zhuǎn)換。

參數(shù)如下:

array

TInput[]

要轉(zhuǎn)換為目標(biāo)類型的從零開(kāi)始的一維Array。

converter

Converter

用于將每個(gè)元素從一種類型轉(zhuǎn)換為另一種類型的Converter。

來(lái)源:[Array.ConvertAll(TInput],Converter)方法(System)|MicrosoftDocs

demo如下:

double[]vs3=Array.ConvertAll(vs,item=(double)item);

切片

默認(rèn)狀態(tài)下只能對(duì)一維數(shù)組進(jìn)行切片,或者通過(guò)交錯(cuò)數(shù)組獲取的一維數(shù)組也可以進(jìn)行切片。

切片的方式類似于vs[1..5],表示vs數(shù)組從1到5,左閉右開(kāi)。^1表示-1,即最后一個(gè)元素。[^3..^1]表示倒數(shù)第三個(gè)元素到倒數(shù)第一個(gè)元素,左閉右開(kāi)。

獲取單個(gè)元素和賦值

可以采用下面的方式來(lái)獲取單個(gè)元素和為單個(gè)元素單獨(dú)賦值:

//一維數(shù)組

Console.WriteLine(vs[1]);

vs[1]=2;

//多維數(shù)組

Console.WriteLine(duoWei[1,2]);

duoWei[1,2]=3;

//交錯(cuò)數(shù)組

Console.WriteLine(jiaoCuo[1][0]);

jiaoCuo[1][0]=0;

Array.ForEach循環(huán)

System.Array里

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論