如何在lambda表达式中执行赋值操作

时间:2010-10-25 12:30:55

标签: vb.net lambda

我有一个项目列表,并希望将其中一个属性设置为某个值:

applist.ForEach(Function(x) x.PrePaidTypeID = CInt(DBEnums.PrePaidType.NoPrepay))

...但我们认为这只是一个布尔比较。有没有办法强制VB分配整数值而不是比较它?

2 个答案:

答案 0 :(得分:3)

使用Sub lambda而不是Function lambda将起作用。正如你所注意到的那样,只有VS2010才能获得lamba Sub。

另一种解决方案是使用多线lambda。这也仅适用于VS2010。 :(

http://msdn.microsoft.com/en-us/library/bb531253.aspx

答案 1 :(得分:1)

我们正在使用VB .NET 9,这似乎是这里的问题。在VB .NET 10中,您可以执行以下操作,根据Google的工作原理:

applist.ForEach(Sub(x) x.PrePaidTypeID = CInt(DBEnums.PrePaidType.NoPrepay))

使用Sub关键字意味着它不必返回值,因此您可以分配。

看起来我们的解决方案是更新项目,或使用常规的For Each循环。