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:
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) _
})