電子書籍の厳選無料作品が豊富!

VB2005の質問です。

変数ghogeにString型の1次元配列の配列を格納したいと考えています。
-----------------------------------------------
'a)
Dim hoge()() As string = _
      {New string() {"a1", "b1", "c1"}, _
      New string() {"a2", "b2", "c2"}, _
      New string() {"a3", "b3", "c3"}}

Dim ghoge As New Generic.List(of )   'b)
MessageBox.Show(ghoge(1)(1))      ' "b2"と表示したい
-----------------------------------------------
質問内容は、(a)を(b)の初期値として設定するにはどのようにすればよいか、ということです。


(b)がGeneric.ListでなくArrayListの場合だと、
  Dim ghoge As New ArrayList(hoge)
でhoge配列を格納できますが、Generic.Listの場合はどのような構文にすればよいでしょうか。

現在は、下記のような処理でghogeに値を格納しています。
------------------------------------------------------------
Dim ghoge As New Generic.List(Of Generic.List(Of String))
Dim aryhoge1 As New Generic.List(Of String)(New String() {"a1", "b1", "c1"})
Dim aryhoge2 As New Generic.List(Of String)(New String() {"a2", "b2", "c2"})

gary_hoge.Add(ary_hoge1)
gary_hoge.Add(ary_hoge2)
MessageBox.Show(gary_hoge(1)(1))    ' "b2"と表示される
------------------------------------------------------------

どうぞよろしくお願い致します。

A 回答 (2件)

こんな感じでもできます。


List(Of String) のAddRangeを使えばいいと思います。
また、宣言は、Generic.List(Of String()) になります。

# Of Stringの後に() をつけます

Dim hoge()() As String = _
{New String() {"a1", "b1", "c1"}, _
New String() {"a2", "b2", "c2"}, _
New String() {"a3", "b3", "c3"}}

'b)
Dim ghoge As New Generic.List(Of String())
ghoge.AddRange(hoge)

MessageBox.Show(ghoge(1)(1))  'b2と表示される

ご参考までに
    • good
    • 0
この回答へのお礼

kero_mioさん
ご指摘のAddRangeメソッドを使うと、質問内容のコードがずいぶんとすっきりしました!ありがとうございます!
あとは、AddRangeメソッドと似たような方法で、(a)を(b)の初期値として設定できれば最高。。
ご回答ありがとうございました。

お礼日時:2007/10/05 05:37

とりあえず、AddRangeの存在をご理解頂けてよかったです。



ところで、
>あとは、AddRangeメソッドと似たような方法で、(a)を(b)の初期値として設定できれば最高。。

ですが、どんなイメージでしょうか?
(すいません、イメージできなかったもので)

もし最高のやり方があれば、調べてみたいので、補足頂けると
助かります。

この回答への補足

補足要求ありがとうございます。

ご質問の件ですが、kero_mioさんのご回答の以下二行を、一行にまとめられれば、と考えております。

>Dim ghoge As New Generic.List(Of String())
>ghoge.AddRange(hoge)

  ↓ 
                       '宣言と同行で値を設定したい
Dim ghoge As New Generic.List(Of String())  ← ghoge.AddRange(hoge)


ArrayListの場合、以下の形で一行で配列の配列を格納。
  ------------------------------------------------
  Dim hoge()() As string = _
        {New string() {"a1", "b1", "c1"}, _
        New string() {"a2", "b2", "c2"}, _
        New string() {"a3", "b3", "c3"}}
  
  Dim ghoge As New ArrayList(hoge)  '宣言と同行で値を設定
  ------------------------------------------------

なにか良い方法がありましたら、ご助言よろしくお願い致します。

補足日時:2007/10/08 03:42
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!