根据成本从每个类别中选择一个项目

本文关键字:选择 项目 一个 | 更新日期: 2023-09-27 18:30:39

我想从每个成本最低的类别中选择五个项目,我收到一个错误,请帮我解决这个问题

     var packageId = objentity.PackageGalleries.
                Where(p => p.ParentCategory != "Indian" 
                        && p.ParentCategory != "International").
                OrderBy(p => p.PackageCost)
               .GroupBy(p => p.ParentCategory).FirstOrDefault();

它只从一个类别中选择一个项目

在我通过的观点中

     @foreach (var item in Model)
        {
            <a href="javascript:;">
                <img src="~/Content/JetJourney/img/@item.FileName" />
                <div>
                    <p>@item.PackageName, Starting Price @item.PackageCost *</p>
                   <br />
                </div>
            </a>
        }

根据成本从每个类别中选择一个项目

您可以按ParentCategory对数据进行分组,并在该组中按PackageCost对分组数据进行排序。这应该给你预期的输出:-

    var packageId = objentity.PackageGalleries
                            .Where(p => p.ParentCategory != "Indian" &&       
                                        p.ParentCategory != "International")
                            .GroupBy(p => p.ParentCategory)
                            .Select(x => x.OrderBy(p => p.PackageCost).FirstOrDefault())
                            .ToList();

更新:

对于您的问题,尽管我从未遇到过此类问题,但这可能是由于根据这篇文章延迟执行 LINQ。您可以使用更新后的ToList()强制执行查询。