Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# XMLNodeList的UWP-XDocument等价物_C#_Xml_Linq_Linq To Xml - Fatal编程技术网

C# XMLNodeList的UWP-XDocument等价物

C# XMLNodeList的UWP-XDocument等价物,c#,xml,linq,linq-to-xml,C#,Xml,Linq,Linq To Xml,如果我有一个XMLDocument,并且想计算一个节点的结果数,那么我会使用 //XmlNodeList CountResultsReturned = XMLSearch.SelectNodes("root/item"); //if (CountResultsReturned.Count > 1) //{} 我想知道如何使用XDocument来实现这样的效果。LINQ to XML中没有一个特定的类与XmlNodeList等效,因为LINQ

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

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

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

LINQ to XML中没有一个特定的类与XmlNodeList等效,因为LINQ to XML只处理节点序列
IEnumerable
或元素序列
IEnumerable
。当您选择一些节点时,它只会一个接一个地生成匹配的节点。如果愿意,可以将序列存储到列表或其他集合。例如

var items = xdoc.Root.Elements("item").ToList();
对于您的代码,只需选择元素并使用LINQ
Any()
方法检查是否存在任何元素:

xdoc.Root.Elements("item").Any()
// items.Any()
您还可以使用
Count()
获取元素数。当然,XPath也可用

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

LINQtoXML中没有与XmlNodeList等效的特定类,因为LINQtoXML只处理节点序列
IEnumerable
或元素序列
IEnumerable
。当您选择一些节点时,它只会一个接一个地生成匹配的节点。如果愿意,可以将序列存储到列表或其他集合。例如

var items = xdoc.Root.Elements("item").ToList();
对于您的代码,只需选择元素并使用LINQ
Any()
方法检查是否存在任何元素:

xdoc.Root.Elements("item").Any()
// items.Any()
您还可以使用
Count()
获取元素数。当然,XPath也可用

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

我正在尝试将我的应用程序转换为UWP,但它确实不喜欢我目前拥有的XML,我觉得我应该多阅读一些XDocuments。使用您的代码似乎是在做我想做的事情,因此,谢谢您,我会将此标记为答案。@TLCONE LINQ to XML是一个不错的选择。我建议您阅读一些教程和/或使用LINQPad进行尝试。有一个示例选项卡,您可以在其中找到C#6 LINQ到XML教程。我正在尝试将我的应用程序转换为UWP,但它确实不喜欢我当前拥有的XML,我觉得我应该多读一些XDocuments。使用您的代码似乎是在做我想做的事情,因此,谢谢您,我会将此标记为答案。@TLCONE LINQ to XML是一个不错的选择。我建议您阅读一些教程和/或使用LINQPad进行尝试。在“示例”选项卡中,您可以找到C#6 LINQ to XML教程