增加初始化类文件
xiyunfei authored at 2026-02-27 00:31:51
933.00 B
NewLife.WeChat
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;
        }
    }
}