我有一个名为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
目标是将机器添加到从最低优先级到最高优先级的第二个列表中,并在它足够时停止。 但是,如果我按照正确的顺序迭代以获得预期的结果,我对我的解决方案不确定。
这样好吗?或者解决方案在其他地方?
答案 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