本文介绍了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:如何按最大项目数分组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!