我寫象下面這樣的代碼:在LINQ表達Divding地產物業
Session["priceRange"] = 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),
SuccessfulSellers = lista.GroupBy(x => x.StoreName).Where(x => ranges.FirstOrDefault(y => y >= x.Select(z => z.SalePrice).FirstOrDefault()) == r && x.Select(h => h.SaleNumber).FirstOrDefault() > 0).Count(),
UnSuccessfulSellers = lista.GroupBy(x => x.StoreName).Where(x => ranges.FirstOrDefault(y => y >= x.Select(z => z.SalePrice).FirstOrDefault()) == r && x.Select(h => h.SaleNumber).FirstOrDefault() == 0).Count(),
}).ToList();
這樣做是如下:
- 找到一個給定的範圍內的所有銷售
- 查找多少賣家已經使銷售在給定範圍內
- 查找有多少賣家沒有在給定範圍內進行任何銷售
現在我想通過銷售率和銷售率的銷售率成功銷售。我會這樣做的方式是:
(thoseWhoHadSales/(thoseWhoHadSales+thoseWhoDidnt))*100;
在哪裏我會得到在給定的價格範圍內賣方的成功銷售。
現在我感到困惑的是不/可能出現的異常:
Divide by zero exception... If those who had sales is equal to = 0;
什麼是對我來說,現在執行的是我上面所示的公式最簡單的方法。我可以在選擇語句中立即執行嗎?
如果這些誰曾銷售給定的價格區間爲= 0,我只想通過設定賣出爲0 ...
有人能幫助我嗎?
斯蒂芬,你的意思是這樣的:
public double SellThroughRate
{
get { return SellThroughRate; }
set
{
if (SuccessfulSellers != 0)
{
SellThroughRate = Math.Round((SuccessfulSellers/(SuccessfulSellers + UnSuccessfulSellers)) * 100,2);
}
else
{
SellThroughRate = 0;
}
}
}
任何人? =) – User987
如果'YourSellers' +'UnSuccessfulSellers'等於'0',那麼在模型中只有calc(僅限getter)並測試一個屬性不是更容易嗎? –
SellThrough屬性高於我不想要的嗎? = D – User987