tengo una lista de números duplicados:LINQ: GroupBy con el máximo recuento en cada grupo
Enumerable.Range(1,3).Select(o => Enumerable.Repeat(o, 3)).SelectMany(o => o)
// {1,1,1,2,2,2,3,3,3}
grupo I ellos y obtener la cantidad de ocurrencia:
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
Lo que realmente necesito es limitar la cantidad por grupo a un cierto número. Si el límite es 2 el resultado para la agrupación anterior sería:
Qty Num
2 1
1 1
2 2
1 2
2 3
1 3
lo tanto, si Cantidad = 10 y el límite es 4, el resultado es 3 filas (4, 4, 2). La cantidad de cada número no es igual que en el ejemplo. El límite de cantidad especificado es el mismo para toda la lista (no difiere según el número).
Gracias
Soy curioso. ¿Para qué se usa este algoritmo? – Luke101
Necesito escupir datos en este formato para una máquina CNC. – JKJKJK