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

问题描述 投票:8回答:2

我有这个方法:

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?

c# xml ienumerable
2个回答
9
投票

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

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

14
投票

怎么样的ElementAt

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

© www.soinside.com 2019 - 2024. All rights reserved.