Если вы используете .NET 4, вы сможете сделать это следующим образом:
Return Chart.AnnotativeNodes.Union(Of Node) _
(Chart.DecisionNodes.Union(Of Node) _
(Chart.EndNodes.Union(Of Node) _
(Chart.StartNodes.Union(Of Node)(Chart.WorkCenterNodes))))
Это должно работать из-за общей ковариации в .NET 4. В противном случае вы можете просто вызвать Cast(Of Node)
для каждой из коллекций.
Я подозреваю, что ваш код может быть написан более читабельно, как:
Return Chart.AnnotativeNodes.Union(Of Node)(Chart.DecisionNodes) _
.Union(Of Node)(Chart.EndNodes) _
.Union(Of Node)(Chart.StartNodes) _
.Union(Of Node)(Chart.WorkCenterNodes)
Если вам нужно, чтобы объединение происходило в определенном порядке, вы можете связываться с ним - я не потрудился, так как Union изначально предназначен для операции с сетами.