2013-04-30 13 views
5

mam tej metody:Dostęp do n-ty element 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); 
       } 
      } 
     } 
    } 

Metoda ta odczytuje z pliku XML. Jednak nie potrzebuję wszystkich węzłów w pliku XML w tym samym czasie.

Chcę je dostać po dziesięć na raz.

Próbowałem pracy z XPathSelectElements, ale to pobiera wszystkie węzły, a następnie muszę iteracji przez nich.

Czy istnieje sposób na uzyskanie węzłów z pliku XML, które są 40-50? Chcę zmodyfikować ReadTransactions - aby mieć inny parametr wejściowy (w tym przypadku 40), a zamiast wszystkich elementów, zwróci on tylko 10?

Odpowiedz

8

Co z metodami rozszerzeń Skip() i Take()?

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

co ElementAt

wydaje mi się to co szukasz