gpt4 book ai didi

c# - 我怎样才能结合这些线?

转载 作者:行者123 更新时间:2023-12-02 21:29:52 25 4
gpt4 key购买 nike

我的 Linq 查询是

List<TopRated> TopRated = (from review in db.ProductReviews
group review by review.ProductID into product
select new TopRated
{
ProductName = product.Select(p => p.Products.Name).FirstOrDefault(),
Price = product.Select(p => p.Products.Price).FirstOrDefault(),
PriceOffer = product.Select(p => p.Products.PriceOffer).FirstOrDefault(),
ProductId = product.Key,
AverageRating = product.Average(p => p.Rating)
}).ToList();

我可以将这些行合并为一个吗?

ProductName = product.Select(p => p.Products.Name).FirstOrDefault(),
Price = product.Select(p => p.Products.Price).FirstOrDefault(),
PriceOffer = product.Select(p => p.Products.PriceOffer).FirstOrDefault(),

我认为我通过执行上述操作来“增加过载”。

最佳答案

您可以使用let使用范围变量的子句。在我看来,它创建了一种直观且优雅的语法:

    var TopRated = (from review in db.ProductReviews
group review by review.ProductID into product
let firstProduct = product.FirstOrDefault()
select new
{
ProductName = firstProduct.Products.Name,
Price = firstProduct.Products.Price,
PriceOffer = firstProduct.Products.PriceOffer,
ProductId = product.Key,
AverageRating = product.Average(p => p.Rating)
}).ToList();

为了进行更深入的分析,您可以使用 IL 反编译器之一来查看每个建议的解决方案如何编译为 IL。对于性能分析,您可以使用 StopWatch 类进行测试。

关于c# - 我怎样才能结合这些线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33044981/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com