2010-04-08 27 views
3

我無法弄清楚如何將數組設置爲兩組數字之一(後面會有更多),我嘗試過的每種方法都會引發某種錯誤。我試圖在case語句內Dim數組,但是我不能在For Each中使用數組,這使得這個毫無價值......任何想法都將不勝感激。如何將數組設置爲VB.NET中的值列表?

代碼:

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 

回答

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

當您將數組分配到一個現有的變量,你必須使用顯式構造函數:

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

這不同於申報和分配在構造函數可選:

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

感謝你們兩人的工作,我覺得今天我的大腦不想做的事情真的很容易。 +1(馬克和本)投票,並會接受馬克的,當它允許我只因爲他是第一。 – RiddlerDev 2010-04-08 18:29:09

+0

@IPX戰神:其實我覺得我第二次不幸。 – 2010-04-08 18:54:21

相關問題