我有重复号码的清单:LINQ:的GroupBy,每组最大计数
Enumerable.Range(1,3).Select(o => Enumerable.Repeat(o, 3)).SelectMany(o => o)
// {1,1,1,2,2,2,3,3,3}
I组他们,并得到一次出现的数量:
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
所以,如果数量= 10和下限为4,则结果为3行(4,4,2)。每个数字的数量与例子中的数量不相等。指定的数量限制对于整个列表是相同的(不因数量而异)。
感谢
我只是好奇。这个算法用于什么? – Luke101 2010-06-04 03:33:19
我需要以这种格式为CNC机器吐出数据。 – JKJKJK 2010-06-30 19:58:02