使用LINQ将集合拆分为多个部分
本文探讨数据分析和编程中一个常见问题:将集合分割成n个不同的子集。
LINQ解决方案:
LINQ为此任务提供了一个简洁优雅的解决方案。以下扩展方法Split<T>
实现了预期结果:
<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>
说明:
Split<T>
方法接受两个参数:输入集合(list
)和要将其分割成的部分数(parts
)。i
初始化为零,这将用作分组元素的索引。group by
语法根据i
和parts
的模来创建组。这确保元素根据其在原始集合中的位置分配到不同的部分。IEnumerable<T>
对象的集合,每个对象代表原始集合的一部分。此解决方案提供了一种方便易读的方法,可以使用LINQ将集合拆分为多个子集。
以上是如何使用 LINQ 将集合拆分为多个部分?的详细内容。更多信息请关注PHP中文网其他相关文章!