首页 >后端开发 >C++ >如何使用 LINQ 将集合拆分为(几乎)相同大小的子集?

如何使用 LINQ 将集合拆分为(几乎)相同大小的子集?

Linda Hamilton
Linda Hamilton原创
2025-01-20 03:46:09583浏览

How Can I Split a Collection into Subsets of (Nearly) Equal Size Using LINQ?

使用LINQ将集合分割成子集

LINQ允许将集合划分成指定数量的子集。与平均分割不同,最后一个子集的元素数量可能与其他子集不同。

为了实现这一点,我们可以使用一个简单的LINQ扩展方法:

<code class="language-csharp">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;
    }
}</code>

使用此方法,您可以将集合划分为子集合,同时确保最后一个子集的大小可能不同。上述代码通过根据元素索引模除子集数量进行分组来实现此目的,有效地将它们分配到不同的子集。

以上是如何使用 LINQ 将集合拆分为(几乎)相同大小的子集?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn