new { ... }
становится
New With { ... }
в VB.NET,
или
New With {Key ... }
, если вы хотите использовать свойства ключа (что позволяет сравниватьдва экземпляра анонимного типа, но не позволяют изменять значения этих свойств).
Итак, я предполагаю, что ваше утверждение будет выглядеть так:
.Select(Function(ci) New With {Key _
.CartItem = ci, _
.Discount = DiscountItems.FirstOrDefault(Function(di) di.SKU = ci.SKU) _
})