gpt4 book ai didi

c# - Linq:如何按最大项目数分组

转载 作者:太空狗 更新时间:2023-10-29 18:26:12 29 4
gpt4 key购买 nike

上下文

  • 我有一个项目列表(或任意长度)。我想将它们分组为一定大小的“ block ”
  • 示例:我有 12 个客户 [0,1,2,3,4,5,6,7,8,9,10,11],我想将他们分成 5 个 block ,这样可以得到 [0,1, 2,3,4] [5,6,7,8,9] [10,11]
  • 注意:实际上我不是在与客户打交道,也不是在单调递增整数。我选择它只是为了简化问题的提问

我的问题

如何制定执行此分组的简单 LINQ 查询(使用查询语法)?

背景

  • 我已经熟悉如何使用 LINQ 语法按值进行分组(例如按客户 ID 对销售额进行分组),但是我不知道如何使用 LINQ 干净/优雅地表达“分块”。我不确定是否有可能以一种直接的方式实现。
  • 我可以并且已经在不使用 LINQ 语法的情况下用普通的旧 C# 实现了一个解决方案。因此,我的问题并没有被阻止在这个问题上,而是我正在寻找在 LINQ 中表达它的方法(再次干净优雅)

最佳答案

您可以按 (index/chunkSize) 对它们进行分组。示例:

    var result =
from i in array.Select((value, index) => new { Value = value, Index = index })
group i.Value by i.Index / chunkSize into g
select g;

关于c# - Linq:如何按最大项目数分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1258162/

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