建立二維陣列的方法

 

型別[ , ] 陣列名稱 = new 型別[列數,行數];
型別[ , ] 陣列名稱 = new 型別[列數, 行數] { { , , ,} , { , , , } };
型別[ , ] 陣列名稱 = new 型別[ , ] { { , , ,} , { , , , } };
型別[ , ] 陣列名稱 = { { , , ,} , { , , , } };

/*方法1*/
/*指定維度,建立四列二行的二維int陣列,
可想成建立四樓2戶
(每一層樓都有2戶,故共有4個括號,裡面各有2個數字)*/

int[,] a = new int[4, 2]{ { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } };

 可表示如下圖,第一維度是4,第二維度是2

a[0,0]=1 a[0,1]=2
a[1,0]=3 a[1,1]=4
a[2,0]=5 a[2,1]=6
a[3,0]=7 a[3,1]=8

/*方法2*/ //在宣告時進行初始化(給值),可以不需要指定陣列大小
int[,] a = new int[,] { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } }; /*方法3*/ //可以不初始化就宣告陣列變數,但將陣列指派給這個變數時,必須使用new
int[,] a; a = new int[,] { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } }; // OK

 二維陣列的存取

//假設有一 3x2 陣列,(三層樓,每一層樓有2戶)
int[,] arr1 = new int[3,2] { { 1, 2 }, { 3, 4 }, { 5, 6 } };


/*方法1*/
//直接存取陣列元素

Response.Write(arr1[0,0]);

/*方法2*/
//GetUpperBound方法--取得陣列中某一維度上限
/*註:第一維是3(樓層高度),
  因arr1[0,1]、arr1[1,1]、arr1[2,1],故第一維的上限是2*/

 for (int i = 0; i <= arr1.GetUpperBound(0); i++)
{
   /*註:第二維是2(有幾「戶」),因arr1[1,0],arr1[1,1],故第二維上限是1*/
   for (int j = 0; j <= arr1.GetUpperBound(1); j++)
   {
       Response.Write(arr1[i, j].ToString());
   }
}


/*方法3*/
//GetLength方法--取得某一維度的長度(即元素個數)
//GetLength(0)->得到第1維長度,是3(列數、樓層數)
//GetLength(1)->得到第2維長度,是2(行數、戶數)

for (int i = 0; i <= arr1.GetLength(0)-1; i++)
{                
   for (int j = 0; j <= arr1.GetLength(1)-1; j++)
   {
       Response.Write(arr1[i, j].ToString());
   }
}


/*方法4*/
//用foreach迴圈

foreach (int i in arr1) 
{
   Response.Write(i);
}


//註:arr1.Length會得到元數總個數6

 

資料來源:

MSDN 陣列教學課程(2003)http://msdn.microsoft.com/zh-TW/library/aa288453(v=vs.71).aspx
MSDN 多維陣列(2012)http://msdn.microsoft.com/zh-tw/library/2yd9wwz4.aspx

綠色進行式:[C#] 陣列(Array)基本用法 http://blog.yehyeh.net/?p=525

c# 中使用foreach和for遍历 一维数组; 二维数组; 交错数组 http://zhidao.baidu.com/question/214951707.html
圖解說三維陣列 http://www.flag.com.tw/book/cento-5105.asp?bokno=F2733&id=980

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 小豆干 的頭像
    小豆干

    小豆干就是我唷

    小豆干 發表在 痞客邦 留言(0) 人氣()