C#中的矩形數(shù)組(多維數(shù)組)和鋸齒數(shù)組的實現(xiàn)
(一)矩形數(shù)組
在C#中,矩形數(shù)組(rectangular array),又稱多維數(shù)組,是使用多個索引訪問其元素的數(shù)組。
1. 二維數(shù)組的聲明:
<baseType>[,] <name>;
例如,聲明和初始化一個二維數(shù)組doubleArray,其基本類型是double,3行4列:
double[,] doubleArray=new double[3,4]; double[,] doubleArray={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
當然,我們還可以這樣對doubleArray進行定義和初始化:
double[,] doubleArray=new double[3,4]{{1,2,3,4},{5,6,7,8},{9,10,11,12}};
2. 根據(jù)索引訪問數(shù)組中的元素
訪問數(shù)組中行號為1,列號為2(第2行,第3列)的數(shù)組元素:
Console.WriteLine(doubleArray[1,2]);//控制臺輸出7
3. 遍歷二維數(shù)組
(1)獲取多維數(shù)組的維度
int rank=doubleArray.Rank;//rank=2,表示doubleArray數(shù)組的維度為2
(2)for循環(huán)遍歷
//for循環(huán)遍歷doubleArray數(shù)組 for(int i=0;i<doubleArray.GetLength(0);i++)//GetLength(0)獲取數(shù)組行數(shù) { for(int j=0;j<doubleArray.GetLength(1);j++)//GetLength(1)獲取數(shù)組列數(shù) { Console.Write(doubleArray[i,j]+"\t");//打印索引為[i,j]的數(shù)組元素 } Console.WriteLine();//打印完一行換行 }
(3)foreach遍歷
//foreach遍歷doubleArray數(shù)組 foreach(double item in doubleArray) { Console.Write(item + "\t");//依次輸出doubleArray數(shù)組中的元素 }
4. 其他多維數(shù)組
其他多維數(shù)組需要更多的逗號隔開,聲明格式:
<baseType>[,,] <name>;//三維數(shù)組 <baseType>[,,,] <name>;//四維數(shù)組 <baseType>[,,,,] <name>;//五維數(shù)組 ...
(二)鋸齒數(shù)組
上述的矩形數(shù)組,它要求數(shù)組每一行的元素個數(shù)相同,但對于鋸齒數(shù)組(jagged array),它可以使數(shù)組中每行的元素個數(shù)不同。
鋸齒數(shù)組又稱為交錯數(shù)組,數(shù)組中的每一個元素都是另一個數(shù)組,所有鋸齒數(shù)組也叫作數(shù)組的數(shù)組,但是要注意,這些數(shù)組都必須要有相同的基本類型。
1. 鋸齒數(shù)組的聲明和初始化
(1)鋸齒數(shù)組聲明
int[][] jaggedArray;//聲明一個int型鋸齒數(shù)組jaggedArray
(2)鋸齒數(shù)組初始化
初始化jaggedArray數(shù)組含有2個子數(shù)組(即數(shù)值中2個元素為另外2個數(shù)組)
jaggedArray = new int[2][];//初始化jaggedArray數(shù)組 jaggedArray[0] = new int[3] { 1, 2, 3 };//第一個元素為一個長度為3的一維數(shù)組 jaggedArray[1] = new int[4] { 4, 5, 6, 7 };//第二個元素為一個長度為4的一維數(shù)組
還可以改進鋸齒數(shù)組的聲明和初始化,將聲明和初始化寫在一行代碼:
int[][] jaggedArray = new int[2][] { new int[] { 1, 2, 3 }, new int[] { 4, 5, 6, 7 } };
2. 遍歷鋸齒數(shù)組
(1)for循環(huán)遍歷
//for循環(huán)遍歷jaggedArray數(shù)組 for(int i = 0; i < jaggedArray.Length; i++)//遍歷數(shù)組的行數(shù) { for (int j = 0; j < jaggedArray[i].Length; j++)//遍歷數(shù)組中每一個行的元素(一維數(shù)組) { Console.Write(jaggedArray[i][j]+"\t");//打印jaggedArray[i][j] } Console.WriteLine();//輸出完一行換行 }
(2)foreach遍歷
//foreach遍歷jaggedArray數(shù)組 foreach(int[] int_item in jaggedArray)//遍歷鋸齒數(shù)中的每個子數(shù)組,類型為int[] { foreach(int item in int_item)//遍歷每個子數(shù)組中的元素,類型為int { Console.Write(item + "\t");//依次輸出鋸齒數(shù)組中的元素 } }
總結
使用鋸齒數(shù)組的語法,不管是數(shù)組的聲明和初始化,還是數(shù)組的遍歷,都要比矩形數(shù)組復雜的多。在大多數(shù)情況下,使用矩形數(shù)組比較簡單,它也是一種比較簡單的存儲方式。但是,有時必須使用鋸齒數(shù)組,且工作效率并不會因此而降低。
到此這篇關于C#中的矩形數(shù)組(多維數(shù)組)和鋸齒數(shù)組的實現(xiàn)的文章就介紹到這了,更多相關C# 矩形數(shù)組和鋸齒數(shù)組內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
WinForm項目開發(fā)中WebBrowser用法實例匯總
這篇文章主要介紹了WinForm項目開發(fā)中WebBrowser用法,需要的朋友可以參考下2014-08-08關于C#.net winform程序驗證moss的集成身份認證實例
因為網(wǎng)站使用的是windows集成認證,所以遇到了權限問題,需要輸入密碼。使操作和用戶體驗非常不方便,研究了好久沒有找到好的方法,最后終于讓我踏破鐵鞋總結出了下面的方法2013-03-03c# winform讀取xml文件創(chuàng)建菜單的代碼
動態(tài)創(chuàng)建菜單使得程序靈活性大大增加,本文根據(jù)讀取xml文件中的配置菜單項來動態(tài)創(chuàng)建菜單,代碼如下2013-09-09理解C#編程中的靜態(tài)類和靜態(tài)成員以及密封類
這篇文章主要介紹了理解C#編程中的靜態(tài)類和靜態(tài)成員以及密封類,注意類成員的相關訪問限制和類的繼承問題,需要的朋友可以參考下2016-01-01