通过对象列表顺序迭代--vb.net

时间:2016-07-25 16:51:42

标签: vb.net visual-studio list

我有一个名为Machines的对象列表。每台机器都有一个" 优先级"财产(UInteger)。 我试图从这个列表中选择机器(即将它们添加到另一个列表中)按特定顺序(从最低优先级到最高优先级),直到条件得到尊重。

因此,我想知道以下方法是否适用于此:

MachineList.Sort(Function(x, y) x.Priority.CompareTo(y.Priority))
For Each machin In MachineList
            MachinesToDisableList.AddMachine(machin)
            If [Condition] Then
                Exit For
            End If
Next

目标是将机器添加到从最低优先级到最高优先级的第二个列表中,并在它足够时停止。 但是,如果我按照正确的顺序迭代以获得预期的结果,我对我的解决方案不确定。

这样好吗?或者解决方案在其他地方?

1 个答案:

答案 0 :(得分:0)

为什么不迭代按优先级排序的列表。像这样:

    Dim machineList As New List(Of Machine)
    Dim machinesToDisableList As New List(Of Machine)
    machineList.Add(New Machine With {.Priority = 6})
    machineList.Add(New Machine With {.Priority = 2})
    machineList.Add(New Machine With {.Priority = 10})

    For Each machine In machineList.OrderBy(Function(x) x.Priority)
        machinesToDisableList.Add(machine)
        If [Condition] Then
            Exit For
        End If
    Next