Каков эквивалентный синтаксис VB.NET для анонимных типов в операторе LINQ?

Я пытаюсь перевести некоторый код C# LINQ в VB.NET и застреваю о том, как объявить анонимный тип в VB.NET.

.Select(ci => 
    new { CartItem = ci, 
          Discount = DiscountItems.FirstOrDefault(di => di.SKU == ci.SKU) }) 

Как Вы переводите C# new { ... } синтаксис в VB.NET?

21
задан Ben McCormack 29 June 2010 в 15:32
поделиться

1 ответ

new { ... } становится

New With { ... } в VB.NET,

или

New With {Key ... }, если вы хотите использовать свойства Key (что позволяет сравнивать два анонимных экземпляра типа, но не позволяет изменять значения этих свойств).

Поэтому я предполагаю, что ваше утверждение будет выглядеть так:

.Select(Function(ci) New With {Key _
    .CartItem = ci, _
    .Discount = DiscountItems.FirstOrDefault(Function(di) di.SKU = ci.SKU) _
})
35
ответ дан 29 November 2019 в 20:09
поделиться