投稿者 るきお(管理者)  (社会人) 投稿日時 2012/12/15 12:02:12
こんにちは。

このページのことですね。
http://homepage1.nifty.com/rucio/main/VBdotNet/Samples201/Sample221ArrayCount.htm

私の表現があいまいでした。
「多次元配列の1次元あたりの要素数を取得する例」と銘打っていますが、
2次元配列のイメージを思い浮かべて書いており、
おそらく当時私は次のようなことを考えたと思います。

  
Dim values(,) As String = {
                    {"アメンボ""イノシシ""ウマ"},
                    {"Apple""Banana""Cat"}
                    }

'3 
Dim count1 = values.Length \ values.Rank

'2 
Dim count2 = values.GetLength(0)

'3 
Dim count3 = values.GetLength(values.Rank - 1)


このコードではcount1は3になりますが、count2は2になります。
つまり、GetLengthを使って『次元ごとの要素の数』を取得するにはcount3のようなRankとの組み合わせが必要です。
count1のようにするかcount3のようにするかはセンスの問題です。

ただ、ここでいう『次元ごとの要素の数』は2次元配列を念頭におくとなんとなくイメージできる気がしますが、
3次元、4次元を考えると結局何の数を指しているのかあいまいになり、このサンプルは混乱を招くだけのように思いました。

そこで、このサンプルは破棄して代わりに「指定した次元にある要素の数を取得する例」に差し替えました。

指摘ありがとうございます。