使用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中文网其他相关文章!