Я работаю над проектом MVC. Мне нужно вернуть объект, который группирует пункты меню в группы из четырех, чтобы отображать в представлении, используя foreach-итерацию. Поскольку это модель, передаваемая в представление, мне нужно вернуть не-общий класс коллекции, который может быть привязан к .cshtml.Как использовать LINQ для возврата результата запроса в словарь
Моя мысль состоит в том, что я мог бы группировать список на основе некоторого типа подсчета в LINQ, чтобы добавить четыре новых элемента списка к каждому словарному ключу. Однако я не нашел выражения, которое было бы достаточно для Словаря. Я мог бы решить это довольно легко, создав еще один метод и повторив снова через коллекцию, чтобы назначить ключи на основе подсчета, но это похоже на ненужную итерацию и неправильную практику.
В настоящее время я работаю со следующим запросом.
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 класса, которые будут заселены в словарь < междунар, Список <MenuItem> >?
Это не для меня ясно, что ключ здесь. Я уверен, что ToDictionary (или ToLookup) сделает это легко, но трудно привести пример, не понимая, что вы пытаетесь сделать. «Некоторый тип счета» довольно расплывчатый. –
По сути, мне нужно сгруппировать запрос в группы по 4, поэтому в каждом подсписке содержится 4 элемента списка, но я не могу вернуть это в общий тип. Следовательно, он должен быть возвращен к типу коллекции, который будет содержать много подписок. – bkingdev
«Поскольку это модель, передаваемая в представление, мне нужно вернуть не общий набор классов« почему? вы можете использовать общие типы для представлений (пока они не открыты. Например, вы можете использовать 'IGrouping>', но не 'IGrouping ' –