如何在 C# 中执行此操作

本文关键字:执行 操作 | 更新日期: 2023-09-27 18:31:32

以下单元测试通过 VB.Net

<Test()> _
Public Sub VB_XMLLiteral_SyntaxRocks_Test()
    Dim XML = <Doc>
                  <Level1>
                      <Item id="1"/>
                      <Item id="2"/>
                  </Level1>
                  <Level1>
                      <Item id="3"/>
                      <Item id="4"/>
                  </Level1>
              </Doc>
    Assert.AreEqual(4, XML.<Level1>.<Item>.Count)
End Sub

如何在 C# 中断言同样的事情?

澄清一下,我想知道如何表达...

XML.<Level1>.<Item>

。在 C# 中

如何在 C# 中执行此操作

Assert.AreEqual(4, XML.Elements("Level1").Elements("Item").Count());

当然,XML需要是一个XElement(这也是VB文字产生的)

使用 LINQ to XML:

var XML = new XElement("Doc",
    new XElement("Level1",
        new XElement("Item", 
            new XAttribute("Id", 1)),
        new XElement("Item", 
            new XAttribute("Id", 2))),
    new XElement("Level1",
        new XElement("Item", 
            new XAttribute("Id", 3)),
        new XElement("Item", 
            new XAttribute("Id", 4))));
Assert.AreEqual(4, 
   (from element in XML.Elements("Level1").Elements("Item")
    select element).Count());