namespace Try_More_On_IEnumerable
static void Main(string[] args)
Console.WriteLine($"运行成功,{DateTime.Now:O}");
namespace Try_More_On_IEnumerable
using System.Collections.Generic;
var arraySource = new[] {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
var enumerablePagedResult = PageByEnumerable(arraySource, 3).ToArray();
enumerablePagedResult.Should().HaveCount(4);
enumerablePagedResult.Last().Should().Equal(9);
var result3 = NormalPage(arraySource, 3).ToArray();
result3.Should().HaveCount(4);
result3.Last().Should().Equal(9);
IEnumerable<IEnumerable<int>> PageByEnumerable(IEnumerable<int> source, int pageSize)
var onePage = new LinkedList<int>();
foreach (var i in source)
if (onePage.Count != pageSize)
onePage = new LinkedList<int>();
IEnumerable<IEnumerable<int>> NormalPage(IReadOnlyCollection<int> source, int pageSize)
var pageCount = Math.Ceiling(1.0 * source.Count / pageSize);
for (var i = 0; i < pageCount; i++)
var offset = i * pageSize;