Imports System.Collections.Generic
Dim infos As New List(Of Info_SortPSD) From {
New Info_SortPSD With {.Cmdidx = New CommandRunIdx With {.Index = 1}, .DistanceTo = 100, .Priority = 1, .GoalGroup = "A"},
New Info_SortPSD With {.Cmdidx = New CommandRunIdx With {.Index = 2}, .DistanceTo = 200, .Priority = 2, .GoalGroup = "B"},
New Info_SortPSD With {.Cmdidx = New CommandRunIdx With {.Index = 3}, .DistanceTo = 150, .Priority = 3, .GoalGroup = "A"},
New Info_SortPSD With {.Cmdidx = New CommandRunIdx With {.Index = 4}, .DistanceTo = 300, .Priority = 4, .GoalGroup = "C"},
New Info_SortPSD With {.Cmdidx = New CommandRunIdx With {.Index = 5}, .DistanceTo = 50, .Priority = 1, .GoalGroup = "B"}
Dim sortedInfos = From info In infos
Order By (info.GoalGroup <> ""), info.DistanceTo
For Each info In sortedInfos
Public Structure Info_SortPSD
Dim Cmdidx As CommandRunIdx
Public Structure CommandRunIdx