У меня есть список дублированных номеров: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). Количество каждого числа не равно, как в примере. Указанный лимит Qty одинаковый для всего списка (не зависит от числа).
Благодаря
Мне просто интересно. Для чего используется этот алгоритм? – Luke101
Мне нужно выплевывать данные в этом формате для машины с ЧПУ. – JKJKJK