将 Linq 中的两个字段相乘

Multiply two fields in Linq

在 LINQ 中是否有将两个字段相乘的选项

public class details
{
 public int qty { get; set; }
 public decimal unitprice{ get; set; }
 public decimal total{ get; set; }
}

select new details
{
 qty =x.qty ,
 unitprice= x.unitprice,
 total= x.qty*x.unitprice,
}

如果不是请给出任何正确的代码

您可能需要一个 Select() 子句:

someLinqQuery.Select(detailsObject => new details
{
    qty = detailsObject.qty,
    unitprice = detailsObject.unitprice,
    total = detailsObject.qty * detailsObject.unitprice
}

但看起来您只需要 属性 像这样:

public class details
{
    public int qty { get; set; }
    public decimal unitprice { get; set; }
    public decimal total =>  qty * unitprice;
}

您可以考虑在 linq 查询语法中使用 let 关键字

var result = from x in items
             let total = ((decimal)x.qty) * x.unitprice
             select new details {
                 qty = x.qty ,
                 unitprice = x.unitprice,
                 total = total
             };