Вы можете использовать Linq и метод AddRange
:
RoomList.AddRange(BookingRoomList.Select(Function(room) room.RoomInfo))
Кроме того, вы можете значительно сократить декларации: Dim x As T = New T()
эквивалентно Dim x As New T()
, и вы, как правило, предпочитаете последнее.
Кроме того, ваше создание BookingRoomList
полностью избыточно (логическая ошибка), потому что вы перезаписываете значение позже.
Наконец, вы можете инициализировать список комнат напрямую в вызове конструктора, или, альтернативно, вы можете полностью опустить вызов конструктора - выражение Linq уже возвращает полноценную коллекцию. Что оставляет нас с:
Dim BookingRoomList As List(Of BookingRoom) = BookingRooms.FillGrid()
Dim RoomList = BookingRoomList.Select(Function(room) room.RoomInfo)).ToList()
И это все.