2次元配列の要素数を求めるには?

解決


オレオレ!オレだよ、名無しだよ!!  2008-08-26 11:04:27  No: 140276  IP: 192.*.*.*

VB初心者です。
下記の2次元配列の次元の要素数を取得したいのですが、関数はあるのでしょうか?(単純にlengthだと6が返ってくるし、Rankだと2が返ってきます。3が返されるようにするにはどうしたらよいのでしょうか?)

Dim test(,) As String = {{"てすと", "1"},{"テスト", "2"},{"手巣都", "3"}}

編集 削除
ヘルプ  2008-08-26 11:13:58  No: 140277  IP: 192.*.*.*

GetLength に知りたい次元を引数で渡してください。

編集 削除
オレオレ!オレだよ、名無しだよ!!  2008-08-26 11:21:53  No: 140278  IP: 192.*.*.*

ヘルプさん回答ありがとうございます。
ですがGetLengthだと特定次元の要素数しか返ってきません。
知りたいのは配列の中の配列の要素数ではなく、配列の要素数です。

編集 削除
Hongliang  2008-08-26 11:30:59  No: 140279  IP: 192.*.*.*

「次元の要素数を取得したい」んですから、「特定次元の要素数」が返ってくるのは全く要求どおりだと思うのですが。

編集 削除
オレオレ!オレだよ、名無しだよ!!  2008-08-26 11:36:15  No: 140280  IP: 192.*.*.*

すみませんでした。
実現方法を教えていただけませんでしょうか?

編集 削除
ヘルプ  2008-08-26 11:59:09  No: 140281  IP: 192.*.*.*

>ですがGetLengthだと特定次元の要素数しか返ってきません。
そのまま使ったので問題ありません。

編集 削除
オレオレ!オレだよ、名無しだよ!!  2008-08-26 12:01:44  No: 140282  IP: 192.*.*.*

ヘルプ様
>そのまま使ったので問題ありません。
申し訳ありませんが、どのような意味でしょうか?

編集 削除
ヘルプ  2008-08-26 12:35:05  No: 140283  IP: 192.*.*.*

GetLengthだと特定次元の要素数が返ってきたのでしょう?
それが答えなのですから、そのまま使ってください。

編集 削除
オレオレ!オレだよ、名無しだよ!!  2008-08-26 13:11:09  No: 140284  IP: 192.*.*.*

1で記載したように
>3が返されるようにするにはどうしたらよいのでしょうか?
の回答がGetLengthでは満たせません。
それとも本当にGetLengthで満たしているのでしょうか?

編集 削除
ヘルプ  2008-08-26 13:20:57  No: 140285  IP: 192.*.*.*

どのように確認して、どのような結果が出たのを満たさないと言っていますか?

編集 削除
特攻隊長まるるう  2008-08-26 13:46:36  No: 140286  IP: 192.*.*.*

>1で記載したように
1ってのは最初のスレッドのこと?質問文には length と Rank
の結果しか書いてないですが GetLength の結果は?

編集 削除
オレオレ!オレだよ、名無しだよ!!  2008-08-26 14:37:15  No: 140287  IP: 192.*.*.*

test.GetLength(0)の結果、2が返ってきます。
求めようとしているものが違うんです。

ex)        値1  値2
配列1    てすと  1
配列2    テスト  2
配列3    手巣都  3

何列あるかじゃなくて何行あるかを求めたいんですよ。だから結果が3にならないと意味がないんです。

編集 削除
特攻隊長まるるう  2008-08-26 14:41:12  No: 140288  IP: 192.*.*.*

残念ながらこちらでは 3 が返ってきます。
自分のコードに間違いが無いか確認してください。
        Dim test(,) As String = {{"てすと", "1"}, {"テスト", "2"}, {"手巣都", "3"}}
        Debug.WriteLine(test.GetLength(0))
        Debug.WriteLine(test.GetLength(1))
[出力]
>3
>2

編集 削除
オレオレ!オレだよ、名無しだよ!!  2008-08-26 14:51:23  No: 140289  IP: 192.*.*.*

大変失礼しました。
ご指摘通りコードが間違っていました。

http://msdn.microsoft.com/ja-jp/library/system.array.getlength(VS.80).aspx

下の方に記述がありました。

編集 削除