我遇到了this answer,它在VB.NET中有一个我从未见过的三点式语法。
查询看起来像这样
Dim result =
From xcmp In azm...<Item>.<ItemPrice>.<Component>
Where xcmp.<Type>.Value = "Principal"
Select Convert.ToDecimal(xcmp.<Amount>.Value)
我试图在google上搜索有关此三重点语法但我没有得到任何内容。
有人可以指向一些有关此语法的文档吗?我也想知道它可以与 C#一起使用,或者是否有相应的?
由于
答案 0 :(得分:8)
当使用...而不是。时,您不是指向直接子<Item>
,而是指层次树中的任何<Item>
。
所以<A>...<B>
给出
<A>
<X1>
<X2>
<B></B>
</X2>
</X1>
</A>
而<A>.<B>
在这个例子中没有结果......
答案 1 :(得分:6)
三点是“descendant axis”,用于访问XML literal syntax中给定名称的XML节点列表(“LINQ to XML”):
获取[parent]元素的所有名称元素,无论它们出现在层次结构中有多深。
此语法在C#中不存在,仅在VB中(暂时)。
答案 2 :(得分:4)
你所指的答案是我的另一个问题,三点只是调用.Descendants()
的捷径。 C#不支持内联XML,因此除非您使用VB,否则必须调用这些方法。这是映射:
...<node>
:= .Descendants("node")
.<node>
:= .Elements("node")
.@attr
:= .Attribute("attr").Value
你可以从VB的intellisense中看到所有这些。