タイトル : Re^3: ジャグ配列でRedim Preserve みたいな使い方をしたいのです 投稿日 : 2017/08/31(Thu) 17:52 投稿者 : 魔界の仮面弁士
> 魔界の弁士様 ×魔界の弁士 ○魔界の仮面弁士 > HongLinang様からも ×HongLinang ○Hongliang > Dictionary メソッド(で良いのでしょうか?) 「Dictionary クラス」ですね。型パラメーターまで含めて書くとこんな感じ。 Dim 約数1 As Dictionary(Of Integer, Integer()) また、先のコードの .ToDictionary は、 戻り値として Dictionary を返す「拡張メソッド」です。 結果を見るときは、このようにします。 MsgBox( 約数1(2).Length ) '2 を返す … 2 の約数は、{1, 2} の 2 つ MsgBox( 約数1(8).Length ) '4 を返す … 8 の約数は、{1, 2, 4, 8} の 4 つ MsgBox( 約数1(8)(0) ) '1 を返す MsgBox( 約数1(8)(1) ) '2 を返す MsgBox( 約数1(8)(2) ) '4 を返す MsgBox( 約数1(8)(3) ) '8 を返す 元質問の Jagged Array として受け取る例も記載しておきます。 冒頭の「Dim Yak(2)() As Integer」の意図に合っているのかは不明ですが。 Dim 約数3()() As Integer = Enumerable.Range(2, 9).Select( Function(b) Enumerable.Range(1, b).Where( Function(c) b Mod c = 0 ).ToArray() ).ToArray() この場合、 MsgBox( 約数3(0).Length ) '2 を返す … 2 の約数は、{1, 2} の 2 つ MsgBox( 約数3(2).Length ) '2 を返す … 4 の約数は、{1, 2, 4} の 3 つ MsgBox( 約数3(8).Length ) '4 を返す … 10 の約数は、{1, 2, 5, 10} の 4 つ という形になります。 「10 の約数」が、ジャグ配列の「約数3(8)」に格納されているよりも、 「10 の約数」が、Dictionaryの「約数1(10)」に格納されている方が分かりやすいですよね。 |