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

发布于 2024-09-29 07:00:11 字数 190 浏览 0 评论 0原文

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

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

从此见与不见 2024-10-06 07:00:11

使用 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

薄凉少年不暖心 2024-10-06 07:00:11

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

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

使用 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:

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

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文