2017-03-07 44 views
0
特定的價格區間

我已經寫了下面的代碼組我的銷售轉化爲具體的價格範圍內像以下:分組通過價格和他們的銷售總結成使用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] 

如果我是正確的?

+2

什麼?我不明白你在問什麼。 – Joe

+1

我不是:)你問**我們** **你的**查詢的**期望**輸出應該是什麼? –

+1

「範圍」是什麼意思?你是否試圖將'銷售額'的總和分組,以便'$ 14.28'到'$ 17.84'範圍內的結果是2,如果有2個銷售額是$ 15.00' –

回答

0

您可以反轉您的範圍,然後找到firstOrDefault(y => y < = x.SalePrice)。稍後以價格訂購您的PriceRanges。

對不起,這個答案是從iPad輸入的,因此格式不正確。