我已经编写了以下代码,将我的销售分组到具体的价格区间,如下所示:
var priceRanges = ranges.Select(r => new PriceRangeGraph
{
Price = Math.Round(r, 2),
Sales = lista.Where(x => ranges.FirstOrDefault(y => y >= x.SalePrice) == r)
.Sum(x => x.SaleNumber)
}).ToList();
请注意以下代码行:
Sales = lista.Where(x => ranges.FirstOrDefault(y => y >= x.SalePrice) == r)
.Sum(x => x.SaleNumber)
假设我的范围是List类型的值 - double,其值为:
Item 0: 0
Item 1: 3.57
Item 2: 7.14
Item 3: 10.70
Item 4: 14.28
Item 5: 17.84
Item 6: 21.41
Item 7: 24.99
在整个列表中有2个销售人员'促销价为15($);
如上所述进行此查询将价格销售置于17.84范围内,因为14.28 $是< 15美元,因此这个查询并没有按照它应该做的工作。我的问题是,是否有更智能的方法来解决这个问题,将销售额放到真正相应的范围内?
有人可以帮我改写吗?
P.S。也许它确实放在了正确的范围内......但是我如何显示这些范围,我的意思是按什么顺序?
Some would have to be list[i-1] - [list[i]
如果我没问题?
答案 0 :(得分:0)
您可以反转范围,然后找到firstOrDefault(y => y< = x.SalePrice)。然后按价格订购PriceRanges。
抱歉,这个答案是从iPad输入的,因此格式不正确。