私は(多くの理由で)変更できないDLLを持っています。このアセンブリを使用してXPathNodeIterator
を取得します。私はXPathNodeIterator
を取得するためにXPathNavigator
にXPathExpression
でXMLを並べ替えることができます知っているC#でXPathNodeIteratorの内容をソートする
、問題は、私はXPathNodeIterator
から始めることであるその後の並べ替えを適用する方法はありますか?
私は(多くの理由で)変更できないDLLを持っています。このアセンブリを使用してXPathNodeIterator
を取得します。私はXPathNodeIterator
を取得するためにXPathNavigator
にXPathExpression
でXMLを並べ替えることができます知っているC#でXPathNodeIteratorの内容をソートする
、問題は、私はXPathNodeIterator
から始めることであるその後の並べ替えを適用する方法はありますか?
XPathNodeIterator
は、IEnumerable
のXPathNavigator
である。私は避けるように期待していたたもの
IEnumerable<XPathNavigator> sorted =
from XPathNavigator nav in nodeIterator
orderby nav.GetAttribute("@id")
select nav;
このタイプはイテレータなので、イテレータ全体を列挙して別のソート可能な構造体にロードすることなく、コンテンツをソートする方法はありません。
このタイプで利用できるメンバーのリストについては、XPathNodeIterator
Membersを参照してください(残念ながら、いずれもソートをサポートしていません)。
はい:) – Sander
パフォーマンス上の違いはありません:あなたは、.NET 3.5とLINQを使用している場合このように、あなたはこのような何かを行うことができます。 'XmlDocument'、' XPathDocument'、または 'XDocument'から得られた' XPathNavigator'を使ったXPathクエリはすべて最適化されず、リニアスキャンを使用します。だからあなたが同じことをすれば、あなたは何も失うことはありません。 –
+1解決策を提供するには: –
私はこれをローカルでテストしましたが、確かに動作しているようです。 今私はこのソリューションをプロジェクトで使用できますか?サーバーをテストサーバーにインストールし、顧客がそのサーバーにインストールしようとしている場合) – Sander