/// <summary>
/// 对List按长度分块
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="list"></param>
/// <param name="size">分块大小,小于或等于0则全部返回</param>
/// <returns></returns>
public static List<List<T>> Chunk<T>(this List<T> list, int size = 0)
{
if (list == null || list.Count == 0)
return null;
if (size == 0)
return new List<List<T>> { list };
List<List<T>> newlist = new List<List<T>>();
var p1 = Convert.ToInt32(Math.Ceiling(list.Count / Convert.ToDecimal(size)));
for (int i = 0; i < p1; i++)
{
if (list.Count - size * i > size)
newlist.Add(list.GetRange(size * i, size));
else
newlist.Add(list.GetRange(size * i, list.Count - size * i));
}
return newlist;
}
C# List分批(对List按长度分块) 分块大小,小于或等于0则全部返回
最新推荐文章于 2024-10-10 09:44:02 发布