一尘不染

使用LINQ将集合拆分成`n`个部分?

c#

有没有一种很好的方法n使用LINQ 将集合拆分为多个部分?当然不一定是均匀的。

也就是说,我想将集合划分为子集合,每个子集合包含元素的子集,最后一个集合可能参差不齐。


阅读 303

收藏
2020-05-19

共1个答案

一尘不染

纯粹的linq和最简单的解决方案如下所示。

static class LinqExtensions
{
    public static IEnumerable<IEnumerable<T>> Split<T>(this IEnumerable<T> list, int parts)
    {
        int i = 0;
        var splits = from item in list
                     group item by i++ % parts into part
                     select part.AsEnumerable();
        return splits;
    }
}
2020-05-19