我的课程如下。

public class ModelMMaster
{
    public string OrderID { get; set; }
    public bool IsActive { get; set; }
    public List<ModelDetail> _detail { get; set; }
}
public class ModelDetail
{
    public string SKUCode { get; set; }
    public int Quantity { get; set; }
    public double Price { get; set; }
}


我有一个订单清单

List<ModelMMaster> _listMaster = new List<ModelMMaster>


我想用LINQ在Sum(Quantity * Price)上计算_listMaster

我被困在这里。

double _sum =_listMaster.Where(f => f.IsActive == true).Select(f => f._detail)......


如何使用LINQ从_listMaster计算总和(数量*价格)?

最佳答案

您可以通过两种方式实现它

选项1

double _sum =_listMaster.Where(f => f.IsActive)
                         .Sum(x=>x._detail.Sum(c=>c.Price * c.Quantity));


选项2

double _sum =_listMaster.Where(f => f.IsActive)
                        .Aggregate(0d,(result,item)=>result + item._detail.Sum(x=>x.Price * x.Quantity));


选项3

double _sum =_listMaster.Where(f => f.IsActive)
                        .SelectMany(x=>x._detail)
                        .Sum(x=>x.Price * x.Quantity);

关于c# - 如何使用linq从另一个列表中的列表中获取总和作为属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56326778/

10-10 21:59