gpt4 book ai didi

c# - 使用 LINQ 将列表拆分为子列表

转载 作者:IT王子 更新时间:2023-10-29 03:27:55 30 4
gpt4 key购买 nike

有什么方法可以分离 List<SomeObject>分成几个单独的列表 SomeObject , 使用项目索引作为每个拆分的分隔符?

举个例子:

我有一个 List<SomeObject>我需要一个 List<List<SomeObject>>List<SomeObject>[] , 因此每个结果列表都将包含一组原始列表的 3 个项目(按顺序)。

例如:

  • 原始列表:[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]

我还需要生成的列表大小作为此函数的参数。

最佳答案

试试下面的代码。

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();
}

想法是首先按索引对元素进行分组。除以三的效果是将它们分成 3 组。然后将每个组转换为列表,并将 ListIEnumerable 转换为 List 列表

关于c# - 使用 LINQ 将列表拆分为子列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/419019/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com