首页 > 后端开发 > C++ > LINQ如何有效地将列表分为指定尺寸的订订列表?

LINQ如何有效地将列表分为指定尺寸的订订列表?

Susan Sarandon
发布: 2025-02-01 22:36:13
原创
730 人浏览过

How Can LINQ Efficiently Split a List into Sublists of a Specified Size?

利用LINQ高效分割列表

LINQ为.NET应用程序提供了一种简洁而强大的数据处理方式,其中包括根据各种条件将列表分割成子列表的功能。

考虑以下问题:您有一个List<T>,需要将其分割成若干个T对象的子列表,每个子列表的大小由索引决定。例如,原始列表包含以下元素:

1

<code>[a, g, e, w, p, s, q, f, x, y, i, m, c]</code>

登录后复制

您希望得到的子列表为:

1

<code>[a, g, e], [w, p, s], [q, f, x], [y, i, m], [c]</code>

登录后复制

子列表的大小可以作为函数参数指定。

一种使用LINQ的解决方案如下:

1

2

3

4

5

6

7

8

public static List<List<T>> Split<T>(IList<T> source, int sublistSize)

{

    return source

        .Select((x, i) => new { Index = i, Value = x })

        .GroupBy(x => x.Index / sublistSize)

        .Select(x => x.Select(v => v.Value).ToList())

        .ToList();

}

登录后复制

此代码执行以下步骤:

  1. 按索引分组: GroupBy方法按元素索引对源列表中的元素进行分组,每个组代表一个不同的子列表。 sublistSize 参数控制子列表大小。
  2. 选择子列表: Select方法用于将每个组中的值提取到一个新的列表中。
  3. 转换为子列表列表: 然后使用ToList将组转换为列表的列表。

结果是一个List,其中每个子列表包含来自原始列表的指定数量的元素,并根据项目索引进行分割。 通过传入 sublistSize 参数,可以灵活控制子列表的大小。

以上是LINQ如何有效地将列表分为指定尺寸的订订列表?的详细内容。更多信息请关注PHP中文网其他相关文章!

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