按名称访问类数组中的值

时间:2018-12-09 13:16:46

标签: arrays vb.net

我正在尝试访问特定设备(例如device1.status.status1)的特定状态以获取status1的值 数组以下

ID = 1
DeviceName = device1
Device_ID = 234
Status_array()
     1, status1, statusvalue1
     2, status2, statusvalue2
     etc
ID =2 
DeviceName = device2
Device_ID  =567
Status_array()
    3, status3, statusvalue3
    4, status4, statusvalue4
     etc

我希望标题足够了,这就是我所拥有的 由设备和状态(所有设备的所有状态)数据集构建的设备阵列,大约有25台设备,每台设备具有10-15种不同的状态

这是我用来创建数组的代码,它会迭代设备表中的每个设备,然后遍历状态表并将状态数组添加到设备数组(此代码有效),我可以设置一个断点并查看数组包含正确的数据,我只是可以弄清楚如何访问它

Public Sub LoadDevices()
    Dim foundRows() As Data.DataRow
    foundRows = MyDevicesDS.Tables("devices").Select()

    For Each item In foundRows
        Dim deviceitem As New G2SWebService.DevicesClass
        Dim id As Integer = item("ID")
        Dim DeviceName As String = item("DeviceName")
        Dim Device_ID As Integer = item("Device_ID")

        deviceitem.Id = item("ID")
        deviceitem.DeviceName = item("DeviceName")
        deviceitem.Device_ID = item("Device_ID")
        Dim statusrows() As Data.DataRow
        Dim statusarray As New List(Of statusClass)()
        statusrows = MyDevicesDS.Tables("status").Select("ParentDeviceID = " + item("ID").ToString)
        For Each statusrow In statusrows
            Dim statusitem As New G2SWebService.statusClass
            statusitem.ID = statusrow("ID")
            statusitem.name = statusrow("name")
            statusitem.StrValue = statusrow("StrValue")

            statusarray.Add(statusitem)
            Console.WriteLine("jjj")

        Next
        deviceitem.status = statusarray
        Device_Array.Add(deviceitem)
        Console.WriteLine("kkk")
    Next
End Sub

这是我正在使用的课程

Public Class DevicesClass
    Public Id As Integer
    Public DeviceName As String
    Public Device_ID As Integer
    Public status As New List(Of statusClass)
End Class

Public Class statusClass
    Public ID As Integer
    Public name As String
    Public StrValue As String
    Public valueType As String
End Class

这是我所了解的

For Each item In Device_Array
        Dim device As String = item.DeviceName
        Dim deviceId As String = item.Device_ID
        Dim statusEnabled As String = item.status.
            'the above line Is where i need To Get the value Of statusEnabled
    Next

0 个答案:

没有答案