У меня есть список дубликатов:
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). Количество каждого числа не равно, как в примере. Указанный лимит количества одинаковый для всего списка (не зависит от числа).
Спасибо