我有以下代码:
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 个请求。
有没有我可以用来实现这一目标的模式?