在C#中对XPathNodeIterator的内容进行排序

我有一个DLL(我有很多原因)无法改变。 我使用这个程序集来检索XPathNodeIterator

我知道我可以在XPathNavigator上使用XPathExpression对XML进行排序以获取XPathNodeIterator ,问题是我从XPathNodeIterator开始有什么方法可以在之后应用排序?

XPathNodeIteratorXPathNavigator非通用IEnumerable 。 因此,如果您使用.NET 3.5和LINQ,您可以执行以下操作:

 IEnumerable sorted = from XPathNavigator nav in nodeIterator orderby nav.GetAttribute("@id") select nav; 

由于此类型是迭代器,因此无法在不枚举整个迭代器并将数据加载到不同的可排序结构中的情况下对内容进行排序。

请参阅XPathNodeIterator成员以获取此类型可用成员的列表(遗憾的是,这些成员都不支持排序)。