开发者

How to set an array to a list of values in VB.NET?

开发者 https://www.devze.com 2022-12-26 08:32 出处:网络
I cannot figure out how to set an array to one of two sets of numbers (there will be more later), every way that I have tried throws some kind of error. I have tried to Dim the array inside the case s

I cannot figure out how to set an array to one of two sets of numbers (there will be more later), every way that I have tried throws some kind of error. I have tried to Dim the array inside the case statements, but then I cannot use the array in the For Each, which makes this worthless.... any ideas would be appreciated.

Code:

Dim HourArray() As Integer

Select Case CurrentShapeRow(ROW_PERIO开发者_如何转开发D)
    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


HourArray = New Integer() {1,2,3,4,5,6,7,8,9}


When you assign an array to an existing variable you must use a constructor explicitly:

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

This differs from a declaration and assignment where the constructor is optional:

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


    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
0

精彩评论

暂无评论...
验证码 换一张
取 消