如何在 lambda 表达式中执行赋值操作
我有一个项目列表,并希望将其中一个属性设置为某个值:
applist.ForEach(Function(x) x.PrePaidTypeID = CInt(DBEnums.PrePaidType.NoPrepay))
...但我们认为这只是进行布尔比较。有没有办法强制VB分配整数值而不是比较它?
I have a list of items and wish to set one of their properties to a certain value:
applist.ForEach(Function(x) x.PrePaidTypeID = CInt(DBEnums.PrePaidType.NoPrepay))
...but we think this just does a boolean comparison. Is there a way to force VB to assign the integer value rather than compare it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用 Sub lambda 代替 Function lambda 就可以了。正如您所注意到的,只有在 VS2010 中您才能获得amba Sub。
另一种解决方案是使用多行 lambda。这也只适用于 VS2010。 :(
http://msdn.microsoft.com/en-us/library/bb531253 .aspx
Using a Sub lambda instead of a Function lambda will work. As you noticed, only in VS2010 do you get lamba Sub.
Another solution is to use a multiline lambda. This, too, only works in VS2010. :(
http://msdn.microsoft.com/en-us/library/bb531253.aspx
我们使用的是 VB .NET 9,这似乎是这里的问题。在 VB .NET 10 中,您可以执行以下操作(根据 Google 的工作原理):
使用 Sub 关键字意味着它不必返回值,因此您可以进行分配。
看起来我们的解决方案是更新项目,或者使用常规的 For Each 循环。
We're using VB .NET 9, which seems to be the issue here. In VB .NET 10 you can do the following which according to Google works:
Using the Sub keyword means that it doesn't have to return a value so you can assign.
Looks like our solution is to update the project, or use a regular For Each loop.