Сортировка содержимого XPathNodeIterator в C # - PullRequest
1 голос
/ 01 сентября 2009

У меня есть DLL, которую я (по многим причинам) не могу изменить. Я использую эту сборку для получения XPathNodeIterator.

Я знаю, что могу отсортировать XML с XPathExpression на XPathNavigator, чтобы получить XPathNodeIterator, проблема в том, что я начинаю с XPathNodeIterator, есть ли способ применить сортировку позже?

Ответы [ 2 ]

5 голосов
/ 01 сентября 2009

XPathNodeIterator не является универсальным IEnumerable из XPathNavigator. Таким образом, если вы используете .NET 3.5 и LINQ, вы можете сделать что-то вроде этого:

IEnumerable<XPathNavigator> sorted =
     from XPathNavigator nav in nodeIterator
     orderby nav.GetAttribute("@id")
     select nav;
1 голос
/ 01 сентября 2009

Поскольку этот тип является итератором, невозможно отсортировать содержимое без перечисления всего итератора и загрузки данных в другую сортируемую структуру.

См. XPathNodeIterator Участники для получения списка членов, доступных для этого типа (к сожалению, ни один из которых не поддерживает сортировку).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...