首页 > 后端开发 > C++ > 如何使用c#中的linq将列表分成特定大小的订书片?

如何使用c#中的linq将列表分成特定大小的订书片?

Barbara Streisand
发布: 2025-02-01 22:46:12
原创
929 人浏览过

How Can I Split a List into Sublists of a Specific Size Using LINQ in C#?

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

在C#中,我们经常会遇到需要将列表分割成较小块或子列表的情况。实现此目标的一种方法是利用C#中强大的LINQ(语言集成查询)扩展。

让我们考虑您提供的示例。您有一个List<T>,并且您想要创建一个ListList<T>[],使得每个生成的列表包含原始列表中一定数量(例如,3)的连续项。

要使用LINQ解决此问题,您可以利用以下代码:

public static List<List<T>> Split<T>(IList<T> source, int chunkSize)
{
    return source
        .Select((x, i) => new { Index = i, Value = x })
        .GroupBy(x => x.Index / chunkSize)
        .Select(x => x.Select(v => v.Value).ToList())
        .ToList();
}
登录后复制

此代码首先根据索引除以chunkSize的结果对源列表中的元素进行分组。这会将它们分组为大小为chunkSize的块。然后,我们使用Select运算符将每个组转换为值列表,并使用ToList运算符创建一个列表的列表。

例如,如果您有一个原始列表[a, g, e, w, p, s, q, f, x, y, i, m, c],并且chunkSize为3,则生成的子列表将为[a, g, e][w, p, s][q, f, x][y, i, m][c]。生成的列表的大小由原始列表中的项目数和分组操作中指定的块大小决定。总的来说,这种基于LINQ的解决方案提供了一种有效的方法,可以根据基于索引的分隔符将列表分割成子列表。 代码已修改为接受chunkSize参数,使其更通用。

以上是如何使用c#中的linq将列表分成特定大小的订书片?的详细内容。更多信息请关注PHP中文网其他相关文章!

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