次のコードがあります。
class Program
{
static void Main(string[] args)
{
foreach (var item in GetEnumerable().Skip(100))
{
Console.WriteLine(item);
}
}
static IEnumerable<int> GetEnumerable(int? page = null, int limit = 10)
{
var currentPage = page ?? 1;
while (true)
{
Thread.Sleep(1000); // emulates slow retrieval of a bunch of results
for (int i = limit * (currentPage - 1); i < limit * currentPage; i++)
{
yield return i;
}
currentPage++;
}
}
}
.Skip(n)
不要な結果を効率的にスキップするために使用できるようにしたいと考えています。したがって、たとえば、Skip(100)
各リクエストで 10 個のアイテムを取得する場合、最初の 10 個のリクエストは完全にスキップする必要があります。
これを達成するために使用できるパターンはありますか?