是否可以在 linq 中执行以下操作,在我的 select new
中我使用 TotalOrderItems
中的值作为 TotalInStockItems
计算的一部分?
var Order = (from o in orderItems
select new ShippingOrder { OrderId = orderItems.OrderId
TotalOrderItems = orderItems.GroupBy(x => x.Sku).Count(),
TotalInStockItems = TotalOrderItems - orderItems.Where(x => x.InStock =='F').GroupBy(x => x.Sku).Count(),
}).ToList();
最佳答案
尝试使用let clause (C# Reference)存储该值以供稍后在查询中使用
(from o in orderItems
let totalOrderItems = orderItems.GroupBy(x => x.Sku).Count()
select new ShippingOrder {
OrderId = o.OrderId
TotalOrderItems = totalOrderItems,
TotalInStockItems = totalOrderItems - orderItems.Where(x => x.InStock =='F').GroupBy(x => x.Sku).Count(),
}).ToList();
关于Linq 使用 select new 中的值来计算另一个字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43919823/