UWP - XDocument 等效于 XMLNodeList

UWP - XDocument Equivalent Of XMLNodeList

如果我有一个 XMLDocument 并且想计算一个节点的结果数,我会使用类似

的东西
        //XmlNodeList CountResultsReturned = XMLSearch.SelectNodes("root/item");
        //if (CountResultsReturned.Count > 1)
        //{}

我想知道如何使用 XDocument 来实现这样的目标。

在 LINQ to XML 中没有特定的 class 等同于 XmlNodeList,因为 LINQ to XML 仅适用于节点序列 IEnumerable<XNode> 或节点序列元素 IEnumerable<XElement>。当你 select 一些节点时,它只会一个接一个地产生匹配的节点。如果需要,您可以将序列存储到列表或其他集合中。例如

var items = xdoc.Root.Elements("item").ToList();

对于您的代码,只需 select 个元素并使用 LINQ Any() 方法检查是否存在任何元素:

xdoc.Root.Elements("item").Any()
// items.Any()

您也可以使用 Count() 来获取元素的数量。当然 XPath 也可用

xdoc.XPathSelectElements("root/item").Count()
// items.Count