加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – Linq:如何按最大项目数进行分组

发布时间:2020-12-15 08:05:48 所属栏目:百科 来源:网络整理
导读:CONTEXT 我有一个项目列表(或任意长度).我想把它们分成一定大小的“块” 示例:我有12个客户[0,1,2,3,4,5,6,7,8,9,10,11],并希望将5个组块分组,这将给出[0,4] [5,9] [10,11] 注意:实际上我不与客户合作或单调增加整数.我选择它只是为了简化提问 我的问题 如
CONTEXT

>我有一个项目列表(或任意长度).我想把它们分成一定大小的“块”
>示例:我有12个客户[0,1,2,3,4,5,6,7,8,9,10,11],并希望将5个组块分组,这将给出[0,4] [5,9] [10,11]
>注意:实际上我不与客户合作或单调增加整数.我选择它只是为了简化提问

我的问题

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

背景

>我已经熟悉如何使用LINQ语法按值进行分组(按客户ID分组销售),但是我不知道如何使用LINQ干净利落地优雅地表达“分块”.我不确定它是否有可能以一种直截了当的方式进行.
>我可以并且已经在普通的C#中实现了一个解决方案而不使用LINQ语法.因此,我的问题不是在这个问题上被阻止,而是我正在寻找方法在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;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读