分组通过价格和他们的销售总结成使用LINQ
问题描述:
特定的价格区间
我已经写了下面的代码组我的销售转化为具体的价格范围内像以下:分组通过价格和他们的销售总结成使用LINQ
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)
并假设我的范围类型的值列表 - 双其值:
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
并且在整个列表中有两个销售谁的销售价格是15($);
做这个查询如上所述的地方价格销售到17.84范围,因为14.28 $是< 15 $,因此这个查询并没有做它的工作,因为它应该。我的问题是,是否有更聪明的方法来解决这个问题,将销售放到真正对应的范围内?
有人可以帮我改写这个吗?
P.S.也许它确实放在了正确的范围内......但是,我将如何显示这些范围,我的意思是按什么顺序?
Some would have to be list[i-1] - [list[i]
如果我是正确的?
答
您可以反转您的范围,然后找到firstOrDefault(y => y < = x.SalePrice)。稍后以价格订购您的PriceRanges。
对不起,这个答案是从iPad输入的,因此格式不正确。
什么?我不明白你在问什么。 – Joe
我不是:)你问**我们** **你的**查询的**期望**输出应该是什么? –
“范围”是什么意思?你是否试图将'销售额'的总和分组,以便'$ 14.28'到'$ 17.84'范围内的结果是2,如果有2个销售额是$ 15.00' –