根據標題,我需要在C#/。NET 4中創建一個可以混亂XPathNodeIterator對象的順序的方法。該方法需要循環所有的子項(「/ *」)來隨機地重新排序子項。我如何循環使用XPathNodeIterator並隨機化其子項?
我需要一些幫助一些上手 - 我只有在方法存根:
public XPathNodeIterator RandomizeXPathNodeIterator(XPathNodeIterator iterator)
任何幫助表示讚賞! 感謝
根據標題,我需要在C#/。NET 4中創建一個可以混亂XPathNodeIterator對象的順序的方法。該方法需要循環所有的子項(「/ *」)來隨機地重新排序子項。我如何循環使用XPathNodeIterator並隨機化其子項?
我需要一些幫助一些上手 - 我只有在方法存根:
public XPathNodeIterator RandomizeXPathNodeIterator(XPathNodeIterator iterator)
任何幫助表示讚賞! 感謝
可以遍歷創建XPathNodeIterator爲:
XPathNavigator[] positions = new XPathNavigator[iterator.Count];
int i = 0;
while (iterator.MoveNext())
{
XPathNavigator n = iterator.Current;
positions[i] = n;
i++;
}
然後,scrumble陣列
如何將XPathNavigator []定位爲XPathNodeIterator? – atp03
'XPathNodeIterator'是一個抽象類,如果您真的想要或需要您的方法返回一個'XPathNodeIterator',那麼您將不得不通過您自己的具體實現來擴展抽象類,這會重寫抽象方法和屬性(例如'Count', 'Current','MoveNext' ...)。然後你的方法可以創建一個具體實現的實例並返回它。 –
你指定哪些.NET版本? –
獲取所選節點的數量:'count(YourExpression)'讓它成爲'N'。然後在C#中生成一個從1到N的不同整數的隨機序列(這不是一個XPath問題,儘管它可以使用XSLT來完成)。然後迭代迭代器並保持迭代器當前位置的計數。填充節點的數組(List),以便當前節點佔據相應的數組位置,這是位於隨機序列中的位置,其值是迭代器中當前節點的位置。 –