Intereting Posts
HttpClient.GetAsync никогда не возвращается на Xamarin.Android почему я получаю OracleTruncateException с ODP.NET OracleDataAdapter, но не с адаптером System.Data.OracleClient при вызове DbDataAdapter.Update? Как lazy-оценить wpf: DataGrid, извлекать данные только по мере необходимости Регистрация в многопоточной среде и тестирование Какова наилучшая практика передачи данных с controllerа на макет представления? Не удалось загрузить файл или сборку «System.Net.Http В сборке нет контекстного типа. ASP.NET MVC4 Как установить таймер для выполнения в определенное время в c # Как я могу подавать команды в процесс cmd.exe через входной stream вручную? TextBoxДля вспомогательных смесей день и месяц в датах ComboBox не теряет фокус Как использовать новый HttpClient из Windows.Web.Http для загрузки изображения? Что эквивалентно свойству VB ReadOnly в C #? Заполнение и слияние коллекции объектов с Json с использованием пользовательского iDefaultContractResolver приводит к сдвинутым / поврежденным данным Как получить более одного столбца с помощью ExecuteScalar?

LINQ Group Для проекта в не анонимный тип?

У меня есть следующий пример LINQ:

var colorDistribution = from product in ctx.Products group product by product.Color into productColors select new { Color = productColors.Key, Count = productColors.Count() }; 

Все это работает и имеет смысл.

То, что я пытаюсь достичь, – это группировать сильного типа вместо анонимного типа.

Например, у меня есть class ProductColour, и я хотел бы Группировать в List

Это возможно?

Спасибо

EDIT: Хорошо, я полностью неправильно прочитал ваш пост. По внешнему виду, вы не хотите группироваться по другому типу – вы хотите проецировать каждый элемент группы на другой тип. Вот что я сделал бы:

 var colorDistributionSql = from product in ctx.Products group product by product.Color into productColors select new { Color = productColors.Key, Count = productColors.Count() }; var colorDistributionList = colorDistributionSql .AsEnumerable() .Select(x => new ProductColour(x.Color, x.Count)) .ToList(); 

LinqToSql позволяет прямое проектирование группы в тип (в конце концов, группа представляет собой только IGrouping , тип). То, что LinqToSql не может сделать, переводит конструктор в SQL.

 IQueryable colorDistributionSql = from product in ctx.Products group product by product.Color into productColors select new ProductColour() { Color = productColors.Key, Count = productColors.Count() };