首页 > 后端开发 > C++ > 如何使用LINQ将列表拆分为特定尺寸的子列表?

如何使用LINQ将列表拆分为特定尺寸的子列表?

Susan Sarandon
发布: 2025-02-01 22:41:09
原创
895 人浏览过

How to Split a List into Sublists of a Specific Size Using LINQ?

使用LINQ将列表分割成子列表

经常需要根据分隔符将对象列表分成较小的子列表。在本例中,我们感兴趣的是使用对象索引作为分隔符来创建具有指定大小的子列表。

考虑以下示例:需要将List<someobject>分成多个列表,每个列表按顺序包含原始列表中的三个项目。期望的输出为:

  • 原始列表:[a, g, e, w, p, s, q, f, x, y, i, m, c]
  • 结果列表:[a, g, e],[w, p, s],[q, f, x],[y, i, m],[c]

为了实现此分割,我们可以使用LINQ,步骤如下:

<code class="language-csharp">public static List<List<T>> Split<T>(IList<T> source)
{
    return source
        .Select((x, i) => new { Index = i, Value = x })
        .GroupBy(x => x.Index / 3) // 按索引除以所需的子列表大小进行分组
        .Select(x => x.Select(v => v.Value).ToList()) // 将每个组转换为列表
        .ToList(); // 将List的IEnumerable转换为List的List
}</code>
登录后复制

首先按索引分组项目,然后将每个组转换为列表,我们有效地将原始列表分割成所需大小的子列表。此技术为使用LINQ分割列表提供了一种简洁明了的解决方案。

以上是如何使用LINQ将列表拆分为特定尺寸的子列表?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板