2010-04-08 3 views
3

Je n'arrive pas à comprendre comment définir un tableau pour l'un des deux ensembles de nombres (il y en aura plus tard), chaque manière que j'ai essayée génère une sorte d'erreur. J'ai essayé de réduire le tableau à l'intérieur des déclarations de cas, mais je ne peux pas utiliser le tableau dans le For Each, ce qui fait que cela ne vaut rien .... toute idée serait appréciée.Comment définir un tableau à une liste de valeurs dans VB.NET?

code:

Dim HourArray() As Integer 

Select Case CurrentShapeRow(ROW_PERIOD) 
    Case "ON", "2X16" 
     HourArray = {6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21} 
    Case "2X8", "5X8" 
     HourArray = {0, 1, 2, 3, 4, 5, 22, 23} 
    Case Else 
     Throw New Exception(String.Format("Unhandled Period: {0}", CurrentShapeRow(ROW_PERIOD))) 
End Select 


For Each HourCount As Integer In HourArray() 
    'DO SOME STUFF HERE 
Next 

Répondre

2
Dim hourArray As List(Of Integer) 

    Select Case CurrentShapeRow(ROW_PERIOD) 
     Case "ON", "2X16" 
      hourArray.AddRange(New Integer() {6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21}) 
     Case "2X8", "5X8" 
      hourArray.AddRange(New Integer() {0, 1, 2, 3, 4, 5, 22, 23}) 
     Case Else 
      Throw New Exception(String.Format("Unhandled Period: {0}", CurrentShapeRow(ROW_PERIOD))) 
    End Select 

For Each i As Integer In hourArray 
    Console.WriteLine(i) 
Next 
5
HourArray = New Integer() {1,2,3,4,5,6,7,8,9} 
4

Lorsque vous attribuez un tableau à une variable existante, vous devez utiliser un constructeur explicitement:

HourArray = New Integer() { 6, 7, 8, 9, 10, 11, 12, 13 } 

Cela diffère d'une déclaration et d'affectation où le constructeur est facultatif:

Dim HourArray() As Integer = { 6, 7, 8, 9, 10, 11, 12, 13 } 
+0

Merci à vous deux, cela a fonctionné, je me suis dit que c'était quelque chose de vraiment facile que mon cerveau ne voulait pas faire aujourd'hui. +1 vote à la fois (Mark et Ben) et acceptera Mark quand il me le permet seulement parce qu'il était le premier. – RiddlerDev

+0

@IPX Ares: En fait je pense que j'étais deuxième malheureusement. –

Questions connexes