подсчет предметов в сгруппированных результатах в Linq to Sql - PullRequest
1 голос
/ 28 октября 2009

Я хочу сгруппировать результаты запроса по идентификатору элемента и подсчитать количество элементов в каждой группе. наконец, я возьму только один элемент из каждой группы и счетчик этой группы для отображения

   results.GroupBy(r=>r.ID)....

1 Ответ

1 голос
/ 28 октября 2009

Вы можете сделать некоторую группировку в Linq следующим образом:

var items = from r in rows
            group r by r.ID into g
            select new { Count = g.Count(), First = g.First() };

... но это даст вам коллекцию объектов со свойством Count (int) и свойством First (того же типа, что и ваши строки).

То, что вы можете сделать, - это выбрать что-то похожее на вашу строку, за исключением свойства count. Один из способов сделать это - поле за полем, например:

var items = from r in rows
            group r by r.ID into g
            let f = g.First()
            select new 
            {
               f.ID, f.Name, f.Foo, f.Bar, // etc
               Count = g.Count()
            };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...