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

时间:2009-09-01 17:16:09

标签: c# xml xpath

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

我知道我可以在XPathExpression上使用XPathNavigator对XML进行排序以获得XPathNodeIterator,问题是我从XPathNodeIterator开始有没有办法之后再申请?

2 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:1)

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

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