我有这个简单的LINQ查询:

Dim sourceSect = (From sect In allSections
                  Where sect.ORDER = sourceNode.Index
                  Select sect).Single()

sourceSect.ORDER = targetNode.Index

但是,如果我在线编写它:
(From sect in allSections Where sect.ORDER = sourceNode.index Select sect).Single().ORDER = targetNode.Index

我从Visual Studio中收到语法错误。

有什么合理的理由吗? :)

最佳答案

你不能只是写

(From sect in allSections Where sect.ORDER = sourceNode.index Select sect).Single().ORDER = targetNode.Index

在VB.Net中。使用查询语法时,必须先将结果分配给变量,然后才能设置属性
Dim sect = (From sect in allSections Where sect.ORDER = sourceNode.index Select sect).Single()
sect.ORDER = targetNode.Index

因此,您必须坐在代码中,或者使用方法语法(如Tim Schmelter指出的那样):
allSections.Single(Function(sect) sect.ORDER = sourceNode.Index).Order = targetNode.Index

关于vb.net - 在VB.net中分配左侧使用LINQ查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12092702/

10-12 16:47