2017-12-01 2 views
1

내 List에있는 모든 LineSum의 총합으로 TotalSum을 어떻게 설정합니까?뷰 모델의 총계 속성 값을 설정하는 방법

이것은 장바구니이며 목록의 각 항목 (제품 가격 * 수량)과 장바구니 총액 (lineSum1 + lineSum2 + lineSum3 등)을 계산해야합니다.

public class ViewModelShoppingCart 
{ 
    public string Title { get; set; } 
    [DataType(DataType.Date)] 
    public DateTime CreateDate { get; set; } 
    public List<ViewModelShoppingCartItem> ShoppingCartItems { get; set; } 
    public decimal TotalSum 
    { 
     set 
     { 
      // This clearly isn't working: 
      TotalSum = ShoppingCartItems.Sum(); 
     } 
    } 
} 

public class ViewModelShoppingCartItem 
{ 
    public string ProductTitle { get; set; } 
    public decimal ProductPrice { get; set; } 
    public int Quantity { get; set; } 
    public decimal LineSum 
    { 
     set 
     { 
      LineSum = ProductPrice * Quantity; 
     } 
    } 
} 

답변

3

를 사용하여 선택 걸리는 overload of Sum :

public decimal TotalSum => ShoppingCartItems.Sum(item => item.LineSum); 

당신은 또한 ViewModelShoppingCartItem.LineSum -property 해결해야 :

public class ViewModelShoppingCartItem 
{ 
    // ... 
    public decimal ProductPrice { get; set; } 
    public int Quantity { get; set; } 
    public decimal LineSum => ProductPrice * Quantity; 
} 
+0

이렇게하면 StackOverflow가 발생하지 않을까요? 'return'으로'get'해야합니까? – DavidG

+0

@DavidG : 다시 봐;) –

+0

아, 예, 우리는 같은 트랙에 있었다고 생각합니다 :) – DavidG

관련 문제