2013-04-30 52 views
5

的第n個元素我有這樣的方法:訪問的IEnumerable

private IEnumerable<XElement> ReadTransactions(string file_name) 
    { 
     using (var reader = XmlReader.Create(file_name + ".xml")) 
     { 
      while (reader.ReadToFollowing("transaction", "urn:namepsaceUri")) 
      { 
       using (var subtree = reader.ReadSubtree()) 
       { 
        yield return XElement.Load(subtree); 
       } 
      } 
     } 
    } 

這個方法從XML文件讀取。 但是,我不需要同時在XML文件中的所有節點。

我想一次拿到十個。

我嘗試使用XPathSelectElements,但獲取所有節點,然後我需要遍歷它們。

那麼,有沒有辦法從40-50的XML文件中獲取節點?我想修改ReadTransactions - 以獲得另一個輸入參數(在這種情況下爲40),而不是所有元素,它將只返回10?

回答

8

怎麼樣Skip()Take()擴展方法?

var items = ReadTransactions(file_name).Skip(40).Take(10); 
2

怎麼樣的ElementAt

在我看來,這是你在找什麼