3 回答
TA贡献1794条经验 获得超7个赞
使用以下扩展方法将输入分成子集
public static class IEnumerableExtensions
{
public static IEnumerable<List<T>> InSetsOf<T>(this IEnumerable<T> source, int max)
{
List<T> toReturn = new List<T>(max);
foreach(var item in source)
{
toReturn.Add(item);
if (toReturn.Count == max)
{
yield return toReturn;
toReturn = new List<T>(max);
}
}
if (toReturn.Any())
{
yield return toReturn;
}
}
}
TA贡献1770条经验 获得超3个赞
在MoreLINQ中,我们有这样一种方法作为Batch方法:
// As IEnumerable<IEnumerable<T>>
var items = list.Batch(8);
要么
// As IEnumerable<List<T>>
var items = list.Batch(8, seq => seq.ToList());
- 3 回答
- 0 关注
- 618 浏览
添加回答
举报