c# - 使用 LINQ 将集合拆分为 `n` 部分?

标签 c# .net linq data-structures

<分区>

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

也就是我想把集合分成子集合,每个子集合包含元素的一个子集,最后一个集合可以参差不齐。

最佳答案

一个纯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;
    }
}

关于c# - 使用 LINQ 将集合拆分为 `n` 部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/438188/

相关文章:

c# - 为什么我无法在 Web Api 中获取 header ?

c# - 从路径列表填充 TreeView

.net - 引用项目中的 app.config 会发生什么

C#仅使用linq显示小数点后的数字

c# - Linq加入两个相似的对象列表?

c# - 如果我将数组的大小初始化为 0 会发生什么?

c# - 使用 AesCryptoServiceProvider 获取不正确的解密值

c# - 具有单个 web.config 的 WCF HTTPS 和 HTTP 绑定(bind)

android - FreeSwitch 使用 API 创建分机/SIP 用户

c# - 加入 LINQ 和 Entity Framework