GetUpperBound & Length 的分別


在取陣列的長度時, 常用的語法有兩個, GetUpperBound & Length, 他們有什麼分別呢?
GetUpperBound(N)可以用來取得陣列第N+1維度中元素的個數
Length可以用來取得陣列中所有的元素個數

用個簡單的程式來測一下就會比較清楚了

{2維陣列}

string[,] aaa = new string[2, 3];
Console.WriteLine("aaa.GetUpperBound(0)=>" + aaa.GetUpperBound(0).ToString());
Console.WriteLine("aaa.GetUpperBound(1)=>" + aaa.GetUpperBound(1).ToString());
Console.WriteLine("aaa.Length=>" + aaa.Length.ToString());

得到的結果如下,

aaa.GetUpperBound(0)=>1  //2個元素
aaa.GetUpperBound(1)=>2  //3個元素
aaa.Length=>6  //6個元素

所有如果當陣列為多維度時, 結果就不會相同, 但如果是一維陣列, 則會是相同的。

{1維陣列}

string[] bbb = new string[2];
Console.WriteLine("bbb.GetUpperBound(0)=>" + bbb.GetUpperBound(0).ToString());
Console.WriteLine("bbb.Length=>" + bbb.Length.ToString());

得到的結果如下,

bbb.GetUpperBound(0)=>1  //2個元素
bbb.Length=>2  //2個元素

留言

這個網誌中的熱門文章

ORA-12514: TNS: 監聽器目前不知道連線描述區中要求的服務

Oracle 例外控制(Exception Control)

Oracle 工作排程 DBMS_JOB 筆記