0

以下单元测试在 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# 中

4

2 回答 2

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

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

于 2012-04-19T08:52:02.217 回答
0

使用 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());
于 2012-04-19T09:03:27.310 回答