Asp.net mvc 从数据库中选择N个项目,但在ASP.NET MVC中仅显示k(其中k<;N)

Asp.net mvc 从数据库中选择N个项目,但在ASP.NET MVC中仅显示k(其中k<;N),asp.net-mvc,Asp.net Mvc,我有下面的代码,其中我从数据库中选择了100项,但只想在下拉列表中显示5项。.Take方法似乎不起作用 HeatService heatService = new HeatService(); List<HeatDropdownOption> availableHeats = heatService.GetHeats() .Where(h => h.Compone

我有下面的代码,其中我从数据库中选择了100项,但只想在下拉列表中显示5项。.Take方法似乎不起作用

   HeatService heatService = new HeatService();
        List<HeatDropdownOption> availableHeats = heatService.GetHeats()
                                               .Where(h => h.ComponentType.Equals(componentType.ToString()))
                                               .OrderByDescending(h => h.Date)
                                               .Take(Constants.NMostRecentHeats)
                                               .Select(h => new HeatDropdownOption(h))
                                               .ToList();

        //HeatDropdown = new MultiSelectList(availableHeats, "ID", "Label", selectedHeats.Select(h=>h.ID).ToList());
        HeatDropdown = new MultiSelectList(availableHeats, "ID", "Label", selectedHeats.Take(5).Select(h => h.ID).ToList());
HeatService HeatService=new HeatService();
List availableHeats=heatService.GetHeats()
.Where(h=>h.ComponentType.Equals(ComponentType.ToString()))
.OrderByDescending(h=>h.Date)
.Take(常数.NMostRecentHeats)
.选择(h=>new HeatDropdownOption(h))
.ToList();
//HeatDropdown=newmultiselectList(可用heat,“ID”,“Label”,selectedHeats.Select(h=>h.ID).ToList());
HeatDropdown=newmultiselectList(可用heat,“ID”,“Label”,selectedHeats.Take(5).Select(h=>h.ID).ToList());

如果您查看
多选列表的重载
第四重载是选择列表中的项目,
第一重载
是将数据设置为下拉列表,以便我们可以使用
。在将数据填充到
下拉列表中之前,请使用(5)
过滤数据。因此,如果您想在
下拉列表中仅显示5,请使用如下方式

    HeatDropdown = new MultiSelectList(availableHeats.Take(5), "ID", "Label");

它将显示
availableHeats

中的前5个项目,但这不允许我搜索从数据库检索到的所有项目。