C# 无法隐式转换类型';System.Linq.IOrderedEnumerable<;System.Xml.XPath.XPathNavigator>';至';System.Xml.XPath.XPathNodeIterator';

C# 无法隐式转换类型';System.Linq.IOrderedEnumerable<;System.Xml.XPath.XPathNavigator>';至';System.Xml.XPath.XPathNodeIterator';,c#,asp.net,linq-to-xml,C#,Asp.net,Linq To Xml,我想知道是否有人知道下面的错误 无法隐式转换类型 'System.Linq.IOrderedEnumerable' 到 'System.Xml.XPath.XPathNodeIterator' 下面是生成错误的代码 var randomNodeset = from XPathNavigator node in nodeset orderby Guid.NewGuid() select node; return (XPathNodeIterator)randomNodeset;

我想知道是否有人知道下面的错误

无法隐式转换类型 'System.Linq.IOrderedEnumerable' 到 'System.Xml.XPath.XPathNodeIterator'

下面是生成错误的代码

var randomNodeset = from XPathNavigator node in nodeset
    orderby Guid.NewGuid()
    select node;
return (XPathNodeIterator)randomNodeset;

感谢您的帮助

在.NET中有两组不同的类用于处理XML,一组是旧的基于DOM的类,另一组是新的linq to XML类。您将它们混合在一起,这会导致不兼容


下面是一篇关于这两种方法之间差异的文章:

同意@Sean,返回值必须是XPathNodeIterator,还是可以使用IEnumerable?谢谢@Anders。我将看一看链接。@Dizwave-对于umbraco,他们声明返回值必须是int、string或XPathNodeIteratorI不能说我完全理解这个问题的答案,但感觉它可能有用(如果您从迭代器开始,并对其进行LINQ排序):