2016-04-16 21 views
0

我有很奇怪的想法在我的類型使用一個局部變量,這是很難說什麼我在我的腦海所以不如將顯示代碼:如何使用增值但不保存

foreach (var item in chosen_products) 
      { 
       var productVM = new ProductViewModel() 
       { 
        ID = item.ID, 
        Name = item.Name, 
        Category = item.Category.Name, 
        Brand = item.Brand.Name, 
        Barcode = item.Barcode, 
        Unit = item.Unit.ToString(), 
        Price_Net = item.Price_Net, 
        Price_Gross = item.Price_Gross, 

        Discount= (item.Price_Customer.FirstOrDefault(x => x.CustomerID == 2) != null) 
            ? (item.Brand.Price_Group.FirstOrDefault(x => x.Group_CustomerID == id_grupy_klienta) != null) ? 
               item.Price_Customer.FirstOrDefault(x => x.CustomerID == 2).Discount + item.Brand.Price_Group.FirstOrDefault(x => x.Group_CustomerID == id_grupy_klienta).Discount : 
               item.Price_Customer.FirstOrDefault(x => x.CustomerID == 2).Discount 
            : (item.Brand.Price_Group.FirstOrDefault(x => x.Group_CustomerID == id_grupy_klienta) != null) ? 
               item.Brand.Price_Group.FirstOrDefault(x => x.Group_CustomerID == id_grupy_klienta).Discount : 0, 
        Price_with_discount_net = .... 

因此,如何在此Price_with_discount_net中使用折扣價值不會重複折扣代碼。 還有什麼可能嗎?

回答

0

你應該在代碼中使用更多的結構和支持變量:

Discount d; 

d = item.Price_Customer.FirstOrDefault(x => x.CustomerID == 2); 

if (d != null) 
{ 
    Discount = (item.Brand.Price_Group. //... 

展開的代碼,不使用三元運算?:可言。改爲使用if()結構。你已經過量了,現在你沒有看到森林的樹木:D

一旦你有d變量,你可以重複使用它,而不必再次使用FirstOrDefault()

相關問題