C# 如何在viewmodel中设置总计特性的值

C# 如何在viewmodel中设置总计特性的值,c#,asp.net-mvc-viewmodel,C#,Asp.net Mvc Viewmodel,如何将TotalSum设置为列表中所有行和的总和 这是一个购物车,我需要计算列表中每个项目的总和(产品价格*数量),以及购物车的总计(lineSum1+lineSum2+lineSum3,等等) 公共类ViewModelShoppingCart { 公共字符串标题{get;set;} [数据类型(DataType.Date)] 公共日期时间CreateDate{get;set;} 公共列表ShoppingCartItems{get;set;} 公共十进制总和 { 设置 { //这显然不起作用:

如何将TotalSum设置为列表中所有行和的总和

这是一个购物车,我需要计算列表中每个项目的总和(产品价格*数量),以及购物车的总计(lineSum1+lineSum2+lineSum3,等等)

公共类ViewModelShoppingCart
{
公共字符串标题{get;set;}
[数据类型(DataType.Date)]
公共日期时间CreateDate{get;set;}
公共列表ShoppingCartItems{get;set;}
公共十进制总和
{
设置
{
//这显然不起作用:
TotalSum=ShoppingCartItems.Sum();
}
}
}
公共类ViewModelShoppingCartItem
{
公共字符串ProductTitle{get;set;}
公共十进制产品价格{get;set;}
公共整数数量{get;set;}
公共十进制行和
{
设置
{
LineSum=产品价格*数量;
}
}
}
使用带有选择器的:

public decimal TotalSum => ShoppingCartItems.Sum(item => item.LineSum);
您还必须修复ViewModelShoppingCartItem.LineSum的
属性:

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

这将导致堆栈溢出否?应该是一个
get
和一个
return
?@DavidG:look reach;)啊,是的,我想我们在同一条轨道上:)
public class ViewModelShoppingCartItem
{
    // ...
    public decimal ProductPrice { get; set; }
    public int Quantity { get; set; }
    public decimal LineSum => ProductPrice * Quantity;
}