9

私はこの方法を持っています:

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 ファイル内のすべてのノードを同時に必要とするわけではありません。

一度に10個入手したいです。

XPathSelectElements を使用してみましたが、すべてのノードが取得されるため、それらを反復処理する必要があります。

では、XML ファイルから 40 ~ 50 のノードを取得する方法はありますか? 変更したいReadTransactions- 別の入力パラメーター (この場合は 40) を持ち、すべての要素の代わりに 10 だけを返しますか?

4

2 に答える 2

10

Skip()およびTake()拡張メソッドはどうですか?

var items = ReadTransactions(file_name).Skip(40).Take(10);
于 2013-04-30T08:08:32.467 に答える