【发布时间】:2010-06-04 07:53:09
【问题描述】:
我有一个重复数字列表:
Enumerable.Range(1,3).Select(o => Enumerable.Repeat(o, 3)).SelectMany(o => o)
// {1,1,1,2,2,2,3,3,3}
我将它们分组并获得出现的数量:
Enumerable.Range(1,3).Select(o => Enumerable.Repeat(o, 3)).SelectMany(o => o)
.GroupBy(o => o).Select(o => new { Qty = o.Count(), Num = o.Key })
Qty Num
3 1
3 2
3 3
我真正需要的是将每组的数量限制为某个数字。如果限制为 2,则上述分组的结果将是:
Qty Num
2 1
1 1
2 2
1 2
2 3
1 3
因此,如果 Qty = 10 且限制为 4,则结果为 3 行(4、4、2)。每个数字的数量并不像示例中那样相等。整个列表的指定数量限制相同(不因数量而异)。
谢谢
【问题讨论】:
-
我只是好奇。这个算法是干什么用的?
-
我需要以这种格式为 CNC 机床输出数据。
标签: linq