2

私はこの単純な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

VisualStudioから構文エラーが発生します。

それには合理的な理由がありますか?:)

ここに画像の説明を入力してください

4

2 に答える 2

3

受け入れられた回答の補足として。メソッド構文を使用して可能です。

allSections.Single(Function(s) s.ORDER = sourceNode.Index).Order = targetNode.Index
于 2012-08-23T13:52:36.647 に答える
2

You can't just write

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

in VB.Net. When using the query syntax, you have to asign the result to a variable first before you can set a property

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

So, you have to sitck with your code, or use the method syntax (as Tim Schmelter pointed out):

allSections.Single(Function(sect) sect.ORDER = sourceNode.Index).Order = targetNode.Index
于 2012-08-23T13:41:01.760 に答える