0

25 列の単一レコードをデータテーブルにロードする方法を見つけようとしています。

SPOT1(データテーブルの列) に呼び出された25 の変数すべてを一覧表示できますSPOT25が、ループや辞書を使用するなどのより簡潔な方法を探しています。

以下のコードは、面倒な「長い」方法と、私が助けを得ようとしている「簡潔な」方法の 2 つの方法を示しています。

Public dctMC As Dictionary(Of String, VariantType)
Dim newMC As New MONTE_CARLO()

'long method: this will work but is cumbersome
newMC.SPOT1=999
newMC.SPOT2=887
...
newMC.SPOT25=5

'concise method:  can it be done more concisely, like in a loop for example?
 Dim k As String

For x = 1 To 25
    k = "SPOT" & CStr(x)
    newMC.K = dctMC(k)    'convert newMC.k to newMC.SPOT1 etc
Next

'load record
DATA.MONTE_CARLOs.InsertOnSubmit(newMC)
4

1 に答える 1

1

他の人によると、より良い解決策があると思いますが、可能です...

Public Class MONTE_CARLO
  Private mintSpot(-1) As Integer
  Property Spot(index As Integer) As Integer
    Get
      If index > mintSpot.GetUpperBound(0) Then
        ReDim Preserve mintSpot(index)
      End If
      Return mintSpot(index)
    End Get
    Set(value As Integer)
      If index > mintSpot.GetUpperBound(0) Then
        ReDim Preserve mintSpot(index)
      End If
      mintSpot(index) = value
    End Set
  End Property
End Class

使用法...

Dim newMC As New MONTE_CARLO
For i As Integer = 0 To 100
  newMC.Spot(i) = i
Next i
MsgBox(newMC.Spot(20))
于 2016-01-05T01:03:19.390 に答える