using System;
using System.Collections.Generic;
using System.Linq;
namespace NewLife.WeChat;
/// <summary>集合扩展</summary>
public static class CollectionExtensions
{
/// <summary>分页处理集合</summary>
/// <typeparam name="T">元素类型</typeparam>
/// <param name="source">源集合</param>
/// <param name="pageSize">每页大小</param>
/// <returns></returns>
public static IEnumerable<IList<T>> Page<T>(this IList<T> source, Int32 pageSize)
{
if (source == null || source.Count == 0) yield break;
if (pageSize <= 0) pageSize = 50;
for (var i = 0; i < source.Count; i += pageSize)
{
var count = Math.Min(pageSize, source.Count - i);
var page = new List<T>(count);
for (var j = 0; j < count; j++)
{
page.Add(source[i + j]);
}
yield return page;
}
}
}
|