我正在做一个 MVC 项目。我需要返回一个对象,该对象将菜单项分组为四个一组,以使用 foreach 迭代在视图中显示。由于这是一个传递给视图的模型,我需要返回一个可以绑定在 .cshtml 上的非泛型集合类。
我的想法是我可以根据 LINQ 中的某种类型的计数对列表进行分组,以向每个 Dictionary 键添加四个新的列表项。但是,我还没有找到一个足以满足字典的表达式。我可以通过创建另一种方法并再次遍历集合以根据计数分配键来相当容易地解决这个问题,但这似乎是不必要的迭代和不好的做法。
目前,我正在使用以下查询。
var itemsDict = rssDataContext.rss_Application_Blog_Category_Relationships
.Where(x => x.Application_Blog.rss_Application.ID == 1)
.Where(x => x.Blog_Category_ID == 1)
.Select(x => new MenuItem
{
Name = x.rss_Application_Blog.Blog_Title,
Uri = x.rss_Application_Blog.Blog_Uri,
ID = x.rss_Application_Blog.ID
});
但是有没有办法将此查询分组为 4 个类,然后填充到 Dictionary<int, List<MenuItem>> 中?