Ben*_*ack 21 .net c# linq vb.net anonymous-types
我正在尝试将一些C#LINQ代码翻译成VB.NET,并且我仍然坚持如何在VB.NET中声明一个匿名类型.
.Select(ci =>
new { CartItem = ci,
Discount = DiscountItems.FirstOrDefault(di => di.SKU == ci.SKU) })
Run Code Online (Sandbox Code Playgroud)
你如何将C#的new { ... }
语法翻译成VB.NET?
Jus*_*ner 35
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) _
})
Run Code Online (Sandbox Code Playgroud)
Gui*_*cha 13
C#:
new {name1 = "value1", name2 = "value2"}
Run Code Online (Sandbox Code Playgroud)
VB等价物:
New With {Key .name1 = "value1", Key .name2 = "value2"}
Run Code Online (Sandbox Code Playgroud)
也,
C#:
new {anotherObj.prop1, anotherObj.prop2}
Run Code Online (Sandbox Code Playgroud)
VB等价物:
New With {Key anotherObj.prop1, Key anotherObj.prop2}
Run Code Online (Sandbox Code Playgroud)
注意:VB等价物中的Key关键字是必需的.当您在VB中指定Key时,该属性变为只读并在Equal方法中进行检查.在C#中,匿名类型的所有属性都是只读的,并在Equal方法中检查.
看到:
归档时间: |
|
查看次数: |
15593 次 |
最近记录: |