Как сгруппировать по цене, ограниченной динамически генерируемым потолком? - PullRequest
0 голосов
/ 18 августа 2010

У меня есть таблица items с несколькими свойствами, но для краткости она имеет свойство price.

Я хочу сгруппировать List<Item> в группы диапазонов цен.Подвох в том, что диапазоны цен (потолки ...) должны генерироваться динамически.

Когда потолки статичны, все работает нормально (Использование LINQ)

decimal[] ceilings = new decimal[] { 0, 10M, 100M, 500M, 5000M, 50000M };
var grouped = items.GroupBy( x => ceilings.First( y => y >= x.Price );

в поисках хорошего алгоритма для генерации группы потолков на лету на основе цены списка items.

Хотя я пытаюсь выяснить step size.У меня в голове есть пара идей, например, найти разницу между Max() и Min() в этом списке и использовать ее для создания списка потолков.

Есть идеи?

1 Ответ

1 голос
/ 18 августа 2010

A алгоритм сортировки сегментов может помочь.

Следуйте литературе. Если моя память работает правильно, есть алгоритмы для создания блоков, которые имеют одинаковое количество записей. И, конечно, вы всегда можете просто отсортировать в (Макс. - Мин.) / N для N ковшей одинакового размера.

...