visual una por operador leer extraer ejemplos caracteres caracter cadena c# .net vb.net linq anonymous-types

c# - por - ¿Cuál es la sintaxis VB.NET equivalente para los tipos anónimos en una declaración LINQ?



string c# ejemplos (2)

DO#:

new {name1 = "value1", name2 = "value2"}

Equivalente de VB:

New With {Key .name1 = "value1", Key .name2 = "value2"}

También,

DO#:

new {anotherObj.prop1, anotherObj.prop2}

Equivalente de VB:

New With {Key anotherObj.prop1, Key anotherObj.prop2}

Nota: la palabra clave clave en VB equivalentes es necesaria. Cuando especifica la clave en VB, la propiedad se convierte en de solo lectura y se verifica en Método igual y en C # todas las propiedades de los tipos anónimos son de solo lectura y se comprueban en Método igual.

Ver:

Tipos anónimos (Guía de programación C #)

Tipos anónimos (Visual Basic)

Estoy tratando de traducir algún código C # LINQ a VB.NET y estoy atascado en cómo declarar un tipo anónimo en VB.NET.

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

¿Cómo se traduce la new { ... } sintaxis de C # en VB.NET?


new { ... } convierte en

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

o

New With {Key ... } si desea usar las propiedades de la Clave (lo que le permite comparar dos instancias de tipo anónimo pero no permite que se cambien los valores de esas propiedades).

Así que supongo que su declaración se vería como:

.Select(Function(ci) New With {Key _ .CartItem = ci, _ .Discount = DiscountItems.FirstOrDefault(Function(di) di.SKU = ci.SKU) _ })