Linq:如何按最大项目数分组 [英] Linq: How to group by maximum number of items

查看:61
本文介绍了Linq:如何按最大项目数分组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

  • 我有一个物品清单(或任意长度).我想将它们分组为一定大小的块"
  • 示例:我有12个客户[0,1,2,3,4,5,6,7,8,9,10,11]并希望将最小的5个块分组,这将得出[0,1, 2,3,4] [5,6,7,8,9] [10,11]
  • 注意:实际上,我不是在与客户合作,也不是在单调增加整数.我选择它只是为了简化问题

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

How can I formulate a straightforward LINQ query (using query syntax) that performs this grouping?

  • 我已经熟悉如何使用LINQ语法对值进行分组(例如,按客户ID对销售进行分组),但是我不知如何使用LINQ清晰/优雅地表达分块".我不知道是否有可能以直接的方式实现.
  • 我可以并且已经在不使用LINQ语法的情况下以纯老式C#实现了解决方案.因此,我的问题并没有被这个问题所困扰,而是我正在寻找用LINQ来表达它的方法(再次简洁明了)

推荐答案

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

You can group them by (index/chunkSize). Example:

    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;

这篇关于Linq:如何按最大项目数分组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆