0

我有一个items包含几个属性的表,但为了简短起见,它有 property price

我想将 aList<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()并用它来生成一个天花板列表。

有任何想法吗?

4

1 回答 1

1

桶排序算法可能会解决问题。

跟随文献。如果我没有记错的话,有一些算法可以创建具有相同条目数的存储桶。当然,对于 N 个统一大小的存储桶,您始终可以将其分类为 (Max - Min)/N。

于 2010-08-17T22:31:59.227 回答