2012-03-26 20 views
0

私が持っているジャグ配列を作成しようとしています、多次元ジグザグ配列を作成するにはどうすればよいですか?

  • 3列それぞれ5,4,4行が2行の行の様々な数を持っている
  • を持って
  • たとえば、6,9,5,6,4

私は最初の部分セットアップがありますが、私はギザギザの配列の別のレベルに到達する方法がわかりません。

Dim potentialStructure()() As Short = {New Short() {0, 1, 2, 3, 4}, New Short() {0, 1, 2, 3}, New Short() {0, 1, 2, 3}} 

どのようにして最低レベルの要素にアクセスできますか?ありがとう!

+0

可能性の重複をGoogleにはかなり簡単です:http://stackoverflow.com/questions/4255308/building-a-multidimensional-array-in-vb-net –

+0

ギザギザの配列は同じではありませんが、ありがたいです。 – Meowbits

+0

誰かがこの記事をチェックアウトするまで、心配することはありません:http://msdn.microsoft.com/en-us/library/2s05feca.aspx –

答えて

0

私はあなたの質問を見つけたので、今までに解決したかもしれません。そうでない場合は、私が演奏しているものの次の抽出物が役に立ちます。ここでは、内部にギザギザの2D配列を持つ通常の2D配列があります。私はあなたが必要としないビットを取り除き、あなたの要件に関連するビットを理解することができると信じています。

私はギザギザのアレイを含む構造を有する:

Structure Sabc 

    Dim def()() As Long 
    Dim ghi As String 

End Structure 

Iは、これらの構造の非ぎざぎざの2D配列を有する:

Dim abc(,) As Sabc 

を私がABCの必要なサイズを計算することができます私のプログラムの先頭:

ReDim abc(sizeD1abc, sizeD2abc) 

私は簡単にABCの要素内の単純な変数にアクセスすることができます:

With abc(crntD1abc, crntD2abc) 
    .ghi = "Example" 
End With 

ジャグ配列の最初の次元は、常に私はそれを設定し3の上限があります。

With abc(crntD1abc, crntD2abc) 
    .def = New Long(3)() {} 
End With 

私はそれが資源空腹のコマンドであるため、その必要はより頻繁にReDimステートメントを使用しないでください。ここでは、要素の数を10で初期化してステップを踏みますが、私が選択する値は配列の大きさと実際のサイズがどれだけ変わるかによって決まります。私は値を格納する前にそれらを必要とする場合

With abc(crntD1abc, crntD2abc) 
    .def(crntD1def) = New Long(9) {} 
End With 
crntD2def = -1 

次は、より多くの要素を追加します。

私は余分な要素を破棄し、終了した
With abc(crntD1abc, crntD2abc) 
    crntD2def +=1 
    If crntD2def > UBound(.def(crntD1def)) Then 
    ReDim Preserve .def(crntD1def)(UBound(.def(crntD1def)) + 10) 
    End If 
    .def(crntD1def)(crntD2def) = expression 
End With 

:これはすべき、

With abc(crntD1abc, crntD2abc) 
    If crntD2def < UBound(.def(crntD1def)) Then 
    ReDim Preserve .def(crntD1def)(crntD2def - 1) 
    End If 
End With 
関連する問題