从IEnumerable中的任何点访问一系列元素

时间:2013-04-30 08:06:19

标签: c# xml 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,但它获取了所有节点,然后我需要遍历它们。

那么,有没有办法从XML文件中获取40-50的节点?我想修改ReadTransactions - 有另一个输入参数(在这种情况下为40),而不是所有元素,它将只返回10?

2 个答案:

答案 0 :(得分:14)

ElementAt

怎么样?

在我看来,这就是你要找的东西

答案 1 :(得分:9)

Skip()Take()扩展方法呢?

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