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

解決


オレオレ!オレだよ、名無しだよ!!  2008-08-26 20:04:27  No: 140276

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

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


ヘルプ  2008-08-26 20:13:58  No: 140277

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


オレオレ!オレだよ、名無しだよ!!  2008-08-26 20:21:53  No: 140278

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


Hongliang  2008-08-26 20:30:59  No: 140279

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


オレオレ!オレだよ、名無しだよ!!  2008-08-26 20:36:15  No: 140280

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


ヘルプ  2008-08-26 20:59:09  No: 140281

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


オレオレ!オレだよ、名無しだよ!!  2008-08-26 21:01:44  No: 140282

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


ヘルプ  2008-08-26 21:35:05  No: 140283

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


オレオレ!オレだよ、名無しだよ!!  2008-08-26 22:11:09  No: 140284

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


ヘルプ  2008-08-26 22:20:57  No: 140285

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


特攻隊長まるるう  2008-08-26 22:46:36  No: 140286

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


オレオレ!オレだよ、名無しだよ!!  2008-08-26 23:37:15  No: 140287

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

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

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


特攻隊長まるるう  2008-08-26 23:41:12  No: 140288

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


オレオレ!オレだよ、名無しだよ!!  2008-08-26 23:51:23  No: 140289

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

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

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加